Áú¹®°ú ´äº¯

C# ¼Ò¸êÀÚ¿¡¼­ await ±¸¹® »ç¿ë. ³¯Â¥:2022-3-10 2:19:20 Á¶È¸¼ö:788
ÀÛ¼ºÀÚ : ²Ü²ÜÀÌÈ£¶±
Æ÷ÀÎÆ® : 32
°¡ÀÔÀÏ : 2021-09-23 14:14:22
¹æ¹®È½¼ö : 19
±Û 4°³, ´ñ±Û 6°³
¼Ò°³ :
ÀÛ¼º±Û º¸±â
ÂÊÁö º¸³»±â
~MyClass()
{
   close();
}
   
public async Task close() {
         ......
 return true;
}


À§Ã³·³ ¼Ò¸êÀÚ¿¡¼­ closeÇÔ¼ö¸¦ È£ÃâÇÒ °æ¿ì await ±¸¹®À» »ç¿ëÇ϶ó´Â °æ°í°¡ ¶ß°í¿ä.
await close(); ·Î Çϸé ~MyClass()°¡ async ÇÔ¼ö°¡ ¾Æ´Ï¶ó ¿¡·¯°¡ ¹ß»ýÇϴµ¥¿ä.

¼Ò¸êÀÚ¿¡¼­ await ±â´ÉÀ» »ç¿ëÇÏ·Á¸é ¾î¶»°Ô ÇØ¾ßÇϳª¿ä?



 

¸ñ·Ïº¸±â »èÁ¦ ¼öÁ¤ ½Å°í ½ºÅ©·¦

ÀÛ°¡K 3¿ù14ÀÏ 8:05:09  

C#ÀÇ ¼Ò¸êÀÚ´Â ¾ðÁ¦ È£ÃâµÉÁö ¾Ë ¼ö ¾ø¾î °ÅÀÇ »ç¿ëÇÏÁö ¾Ê½À´Ï´Ù.
async Ű¿öµå¸¦ ½èÀ¸¸é ³»ºÎÀÇ ÄÚµåÁß ºñµ¿±â ó¸®ÇÒ ºÎºÐ¿¡ await¸¦ Àû¾î ÁÖ¾î¾ß ÇÕ´Ï´Ù.
º¸Åë Task.RunÀ» È£ÃâÇÏ¿© »õ·Î¿î ½º·¹µå¸¦ ±âµ¿ÇÏ´Â Çü½ÄÀÔ´Ï´Ù.
À§ ÄÚµå´Â Task¸¦ ¸®ÅÏÇÏ´Â °ÍÀ¸·Î ¼±¾ðÇØ ³õ°í true¸¦ ¸®ÅÏÇϰí Àֳ׿ä.
async, await °ü·Ã ¿¹Á¦¸¦ ¸ÕÀú »ìÆì º¸½Ã´Â°Ô ÁÁÀ» °Å °°½À´Ï´Ù.

²Ü²ÜÀÌÈ£¶± 3¿ù29ÀÏ 1:57:40  

¾È³çÇϼ¼¿ä.
¿ì¼± ´äº¯ °¨»çµå¸³´Ï´Ù.
Á¦°¡ ¿¹Á¦¸¦ À߸ø ÀÛ¼ºÇß½À´Ï´Ù.

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 ÇÔ¼ö¸¦ Á¤»óÀûÀ¸·Î ´ë±âÇß´Ù°¡ Á¾·á ½Ãų·Á¸é ¾î¶»°Ô ÇØ¾ßÇÒ±î¿ä?



 

²Ü²ÜÀÌÈ£¶± 3¿ù29ÀÏ 2:11:30  

~MyClass()
{
   bool a = await close().Result;
}

¸»¾¸ÇϽŵ¥·Î ¿¹Á¦¸¦ ã¾Æº¸´Ï .Result ¶ó´Â ±¸¹®ÀÌ À־ À§¿Í °°ÀÌ Çϴϱñ  Áõ»óÀÌ ÇØ°áµÆ½À´Ï´Ù~


·Î±×ÀÎÇÏ¼Å¾ß ´ñ±ÛÀ» ´Þ ¼ö ÀÖ½À´Ï´Ù.