C#ÀÇ ¼Ò¸êÀÚ´Â ¾ðÁ¦ È£ÃâµÉÁö ¾Ë ¼ö ¾ø¾î °ÅÀÇ »ç¿ëÇÏÁö ¾Ê½À´Ï´Ù. async Ű¿öµå¸¦ ½èÀ¸¸é ³»ºÎÀÇ ÄÚµåÁß ºñµ¿±â ó¸®ÇÒ ºÎºÐ¿¡ await¸¦ Àû¾î ÁÖ¾î¾ß ÇÕ´Ï´Ù. º¸Åë Task.RunÀ» È£ÃâÇÏ¿© »õ·Î¿î ½º·¹µå¸¦ ±âµ¿ÇÏ´Â Çü½ÄÀÔ´Ï´Ù. À§ ÄÚµå´Â Task¸¦ ¸®ÅÏÇÏ´Â °ÍÀ¸·Î ¼±¾ðÇØ ³õ°í true¸¦ ¸®ÅÏÇϰí Àֳ׿ä. async, await °ü·Ã ¿¹Á¦¸¦ ¸ÕÀú »ìÆì º¸½Ã´Â°Ô ÁÁÀ» °Å °°½À´Ï´Ù.
¾È³çÇϼ¼¿ä. ¿ì¼± ´äº¯ °¨»çµå¸³´Ï´Ù. Á¦°¡ ¿¹Á¦¸¦ À߸ø ÀÛ¼ºÇß½À´Ï´Ù. public async Task<bool> close() { // ³»ºÎ¿¡ ÀÚ¿ø ÇØÁ¦¸¦ await ÇÏ´Â Äڵ尡 ÀÖ½À´Ï´Ù. bool resutl = await Socket.Close(); // Ãß°¡ ³»¿ë.... return result; } ÇÁ·Î±×·¥ Á¾·á ½Ã ¼Ò¸êÀÚ¿¡¼ close ÇÔ¼ö¸¦ È£ÃâÇØ ÀÚ¿øÀ» ÇØÁ¦ÇÒ·Á°í ÇÕ´Ï´Ù. ~MyClass() { close(); } ó·³ Çϸé await ¿¬»êÀÚ¸¦ ¾²¶ó´Â °æ°í°¡ ¶ß°í¿ä. ~MyClass() { await close(); } Çϸé async ¸Þ¼Òµå¸¸ await¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù°í ³ª¿À´Âµ¥¿ä ~ async MyClass() { await close(); } ¼Ò¸êÀÚ¿¡´Â async Ű¿öµå¸¦ Ãß°¡ÇÒ ¼ö°¡ ¾ø´Â °Í °°³×¿ä. ~ ¾Õ, µÚ¿¡ ³Ö¾îºÁµµ ´Ù ¿¡·¯°¡ ³³´Ï´Ù. ÇÁ·Î±×·¥ Á¾·á ½Ã ºñµ¿±â close ÇÔ¼ö¸¦ Á¤»óÀûÀ¸·Î ´ë±âÇß´Ù°¡ Á¾·á ½Ãų·Á¸é ¾î¶»°Ô ÇØ¾ßÇÒ±î¿ä?
~MyClass() { bool a = await close().Result; } ¸»¾¸ÇϽŵ¥·Î ¿¹Á¦¸¦ ã¾Æº¸´Ï .Result ¶ó´Â ±¸¹®ÀÌ ÀÖ¾î¼ À§¿Í °°ÀÌ Çϴϱñ Áõ»óÀÌ ÇØ°áµÆ½À´Ï´Ù~
·Î±×ÀÎÇÏ¼Å¾ß ´ñ±ÛÀ» ´Þ ¼ö ÀÖ½À´Ï´Ù.