{"id":500388,"date":"2024-08-08T05:44:14","date_gmt":"2024-08-08T04:44:14","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=dotnet&#038;p=500388"},"modified":"2024-08-08T05:44:20","modified_gmt":"2024-08-08T04:44:20","slug":"how-to-use-the-tasks-view-in-jetbrains-rider","status":"publish","type":"dotnet","link":"https:\/\/blog.jetbrains.com\/ko\/dotnet\/2024\/08\/08\/how-to-use-the-tasks-view-in-jetbrains-rider\/","title":{"rendered":"JetBrains Rider\uc5d0\uc11c Tasks(\uc791\uc5c5) \ubdf0\ub97c \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95"},"content":{"rendered":"<p>Task Parallel Library(TPL)\ub294 \ud504\ub808\uc784\uc6cc\ud06c\uac00 \uba40\ud2f0\uc2a4\ub808\ub4dc \ubcd1\ub82c \ucf54\ub4dc\ub97c \uc791\uc131\ud558\uace0 \uc2e4\ud589\ud560 \uc218 \uc788\ub3c4\ub85d \ud558\ubbc0\ub85c \ubaa8\ub4e0 .NET \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0 \ud544\uc218\uc801\uc785\ub2c8\ub2e4. \ub610\ud55c, \ub9ac\uc18c\uc2a4\ub97c \ucd5c\ub300\ud55c \ud65c\uc6a9\ud558\ub824\ub294 \uac1c\ubc1c\uc790\ub77c\uba74 <code>System.Threading<\/code> \ubc0f <code>System.Threading.Tasks<\/code>\uc5d0 \uc788\ub294 \ud0c0\uc785\uc744 \ud65c\uc6a9\ud558\uc5ec \ub9de\ucda4\ud615 \ucf54\ub4dc\ub97c \uc791\uc131\ud558\uace0 \uc2f6\uc744 \uac83\uc785\ub2c8\ub2e4. \uc774\ub97c \uc704\ud574\uc11c\ub294 \uc7a0\uae08, \uad50\ucc29 \uc0c1\ud0dc, await \ubc0f \uc2a4\ucf00\uc904\ub9c1\uacfc \uac19\uc774 \ube60\ub974\uace0 \ud655\uc7a5 \uac00\ub2a5\ud55c \uc194\ub8e8\uc158\uc744 \uc791\uc131\ud560 \ub54c \ud544\uc694\ud55c \ub3d9\uc2dc\uc131 \ubc0f \uc2a4\ub808\ub4dc\uc758 \uae30\ucd08\ub97c \uc774\ud574\ud574\uc57c \ud569\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uac1c\ub150\uc5d0 \ub300\ud55c \uc774\ud574\ub97c \ud655\uc7a5\ud558\ub824\uba74 \ud63c\ub780\uc2a4\ub7fd\uac8c \uc2e4\ud589\ub418\ub294 \uc791\uc5c5\uc744 \uc2dc\uac01\ud654\ud558\uace0 \uc774\ud574\ud558\ub294 \ub370 \ub3c4\uc6c0\uc744 \uc8fc\ub294 \ud0c1\uc6d4\ud55c \ub3c4\uad6c\uac00 \ud544\uc694\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc88b\uc740 \uc18c\uc2dd\uc774 \uc788\uc2b5\ub2c8\ub2e4! \ucd5c\uadfc Tasks(\uc791\uc5c5) \ubdf0\uc758 \uccab \ubc88\uc9f8 \uc2e0\uaddc \ubc84\uc804\uc774 \ucd9c\uc2dc\ub418\uc5c8\uc2b5\ub2c8\ub2e4. Tasks \ubdf0\ub294 \ud604\uc7ac \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ud504\ub85c\uc138\uc2a4 \ub0b4 \uc791\uc5c5\uc744 \uc774\ud574\ud560 \uc218 \uc788\ub3c4\ub85d \ub3c4\uc640\uc8fc\ub294 \uac15\ub825\ud55c \ub3c4\uad6c\uc785\ub2c8\ub2e4.<\/p>\n<p>\uc774 \uae00\uc5d0\uc11c\ub294 \uc0c8\ub85c\uc6b4 \ub3c4\uad6c \ucc3d\uc744 \uc0b4\ud3b4\ubcf4\uace0, \ud544\uc218 UI \uc694\uc18c\ub97c \ub17c\uc758\ud55c \ub2e4\uc74c, \uc77c\ubc18\uc801\uc778 \uc2dc\ub098\ub9ac\uc624\ub97c \uba87 \uac00\uc9c0 \uc124\uba85\ud569\ub2c8\ub2e4. \ub2e4 \uc77d\uace0 \ub09c \ud6c4 \uc5ec\ub7ec\ubd84\uc740 \uc790\uc2e0\uc758 \ucf54\ub4dc \ubca0\uc774\uc2a4\ub97c \uc0b4\ud3b4\ubcf4\uba70 \ucd5c\uc801\ud654 \uac00\ub2a5\uc131\uc744 \ucc3e\uc744 \uc218 \uc788\uac8c \ub420 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<div class=\"buttons\">\n<div class=\"buttons__row\"><a class=\"btn\" href=\"https:\/\/jetbrains.com\/ko-kr\/rider\/download\/\" target=\"\" rel=\"noopener\">JetBrains Rider \ub2e4\uc6b4\ub85c\ub4dc \ubc0f \uc0ac\uc6a9\ud574 \ubcf4\uae30<\/a><\/div>\n<\/div>\n<h2 class=\"wp-block-heading\">.NET \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c \uc791\uc5c5 \uc2e4\ud589<\/h2>\n<p>.NET\uc5d0\uc11c Tasks(\uc791\uc5c5)\ub294 \ub3d9\uc2dc\uc131 \ubc0f \uba40\ud2f0\uc2a4\ub808\ub529\uacfc \uac19\uc740 \uac1c\ub150\uc5d0 \ub300\ud55c \ucd94\uc0c1\ud654\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4. \ubaa9\uc801\uc740 CPU \ucf54\uc5b4\ub098 \uc2a4\ub808\ub4dc\uc5d0 \ub300\ud55c \uac71\uc815\uc744 \uc904\uc774\uace0 \uc2a4\ucf00\uc904\ub9c1\uc774\ub098 \uc791\uc5c5 \ub3d9\uc2dc \uc2e4\ud589\uacfc \uac19\uc740 \ub354 \uc0c1\uc704\uc758 \uac1c\ub150\uc5d0 \uc9d1\uc911\ud558\ub3c4\ub85d \ud558\ub294 \uac83\uc785\ub2c8\ub2e4. \uc774\ub294 \uac1c\ubc1c\uc790\ub4e4\uc774 \uc2dc\uc2a4\ud15c \ub9ac\uc18c\uc2a4\ub97c \ud6a8\uc728\uc801\uc73c\ub85c \ud65c\uc6a9\ud558\uba74\uc11c \uba85\ub839\ud615 \ucf54\ub4dc\ub97c \uc791\uc131\ud558\ub294 \ub370 \uc9d1\uc911\ud558\ub3c4\ub85d \ub3c4\uc640\uc8fc\uae30 \ub54c\ubb38\uc5d0 \ubcf4\ud1b5\uc740 \ub9e4\uc6b0 \uc720\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n<p>\uadf8\ub7ec\ub098 \uadf8 \uc720\uc6a9\uc131\uc5d0\ub3c4 \ubd88\uad6c\ud558\uace0 \uc644\ubcbd\ud55c \ucd94\uc0c1\ud654\ub780 \uc5c6\uc73c\uba70 \ud2b9\uc815 \uc2dc\uc810\uc5d0\ub294 \uc5ec\ub7ec \uc791\uc5c5\uc744 \ub3d9\uc2dc\uc5d0 \uc2e4\ud589\ud588\uc744 \ub54c\uc758 \uc704\ud5d8\uc744 \uad00\ub9ac\ud574\uc57c \ud569\ub2c8\ub2e4. \uc5ec\uae30\uc5d0\ub294 \uad50\ucc29 \uc0c1\ud0dc, \uacbd\ud569 \uc870\uac74 \ubc0f \ubd80\ud558\ub97c \uc57c\uae30\ud558\ub294 \ube44\ud6a8\uc728\uc801\uc778 \uc2a4\ucf00\uc904\ub9c1 \ub4f1\uc774 \ud3ec\ud568\ub429\ub2c8\ub2e4. \ucd94\uc0c1\ud654\ub97c \uc0ac\uc6a9\ud558\ub294 \uac83\uacfc \ubcc4\ub3c4\ub85c \uadf8 \uc791\ub3d9 \ubc29\uc2dd \ubc0f \uc6d0\ub9ac\ub3c4 \uc774\ud574\ud558\uba74 \uc88b\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc77c\ubc18\uc801\uc73c\ub85c \uc0ac\uc6a9\uc790\ub294 \uc791\uc5c5\uc758 \uc2a4\ucf00\uc904\ub9c1\uc744 \ucc98\ub9ac\ud558\uc9c0\ub9cc \uc791\uc5c5\uc774 \uc5b8\uc81c \uc5b4\ub5bb\uac8c \ub05d\ub0a0\uc9c0\ub294 \uc54c \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc2e4\ud589\uc740 .NET \ub7f0\ud0c0\uc784\uc774 \ub2f4\ub2f9\ud569\ub2c8\ub2e4. \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud560 \uc9d5\ud6c4\ub97c \ubcf4\uc774\ub294 \ud2b9\uc815 \ucf54\ub4dc \ud328\ud134\uc744 \uc2dd\ubcc4\ud560 \uc218\ub3c4 \uc788\uc9c0\ub9cc, \uac00\uc7a5 \uc88b\uc740 \ubc29\ubc95\uc740 \ub7f0\ud0c0\uc784\uc5d0 \uc791\uc5c5\uc758 \ubb38\uc81c\ub97c \uc9c4\ub2e8\ud558\ub294 \uac83\uc785\ub2c8\ub2e4. \uadf8\ub7ec\uba74 \ucf54\ub4dc \ubca0\uc774\uc2a4\uc5d0\uc11c \uc77c\ubc18\uc801\uc73c\ub85c \ubc1c\uacac\ub420 \uc218 \uc788\ub294 \uba87\uba87 \uc2dc\ub098\ub9ac\uc624\ub97c \uc0b4\ud3b4\ubcf4\uace0 Tasks \ubdf0\ub85c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc774\ud574\ud558\ub294 \ubc29\ubc95\uc744 \uc54c\uc544\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<h2 class=\"wp-block-heading\">\uacf5\ud1b5 \uc791\uc5c5<\/h2>\n<p>\uc791\uc5c5\uc744 \ub2e4\ub8f0 \ub54c \uac00\uc7a5 \uac00\ub2a5\uc131\uc774 \ub192\uc740 \uc2dc\ub098\ub9ac\uc624\ub294 <code>async<\/code>\ub098 <code>await<\/code> \ud0a4\uc6cc\ub4dc\uac00 \ud544\uc694\ud55c \uc791\uc5c5\uc744 \ubc18\ud658\ud558\ub294 API\ub97c \uc0ac\uc6a9\ud558\ub294 \uac83\uc785\ub2c8\ub2e4. \uc774\ub7ec\ud55c \ube44\ub3d9\uae30 API\ub294 ASP.NET Core, MAUI \ubc0f Entity Framework Core\uc5d0 \uc788\uc2b5\ub2c8\ub2e4. \uc5ec\ub7ec \uc624\ud508 \uc18c\uc2a4 \ud504\ub85c\uc81d\ud2b8\ub3c4 async\ub97c \uc6b0\uc120\ud558\ub294 API\ub85c \uc804\ud658\ud558\uc5ec \uac1c\ubc1c\uc790\uc758 \uc694\uad6c \uc0ac\ud56d\uc5d0 \ub300\uc751\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uac04\ub2e8\ud55c \uc608\uc2dc\ub97c \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"rider-code-highlight rider-code-highlight__dark\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"\">&lt;span class=&quot;keyword&quot;&gt;await&lt;\/span&gt; &lt;span class=&quot;method-name&quot;&gt;BasicWork&lt;\/span&gt;();\n\n&lt;span class=&quot;keyword&quot;&gt;async&lt;\/span&gt; &lt;span class=&quot;class-name&quot;&gt;Task&lt;\/span&gt; &lt;span class=&quot;method-name&quot;&gt;BasicWork&lt;\/span&gt;()\n{\n    &lt;span class=&quot;keyword&quot;&gt;await&lt;\/span&gt; &lt;span class=&quot;class-name&quot;&gt;Task&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;method-name static-symbol&quot;&gt;Delay&lt;\/span&gt;(&lt;span class=&quot;struct-name&quot;&gt;TimeSpan&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;method-name static-symbol&quot;&gt;FromSeconds&lt;\/span&gt;(&lt;span class=&quot;number&quot;&gt;1&lt;\/span&gt;));\n    &lt;span class=&quot;static-symbol class-name&quot;&gt;Console&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;method-name static-symbol&quot;&gt;WriteLine&lt;\/span&gt;(&lt;span class=&quot;string&quot;&gt;&quot;? Hello Tasks View!&quot;&lt;\/span&gt;);\n}<\/pre>\n<div class=\"rider-code-highlight-btn-copy\">\n<div class=\"rider-code-highlight-tooltip\">\ud074\ub9bd\ubcf4\ub4dc\uc5d0 \ubcf5\uc0ac<\/div>\n<\/div>\n<\/div>\n<p>\uc774 \uc608\uc2dc\uc5d0\ub294 \ub450 \uac1c\uc758 \uc791\uc5c5\uc774 \uc788\uc2b5\ub2c8\ub2e4. JetBrains\uc758 \ud504\ub85c\uadf8\ub7a8\uc5d0\uc11c \uac00\uc838\uc628 \uba54\uc778 \uc791\uc5c5\uacfc <code>BasicWork<\/code> \uba54\uc11c\ub4dc\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub97c \uc0c8\ub85c\uc6b4 Tasks(\uc791\uc5c5) \ubdf0\ub97c \uc0ac\uc6a9\ud558\uc5ec \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc138\uc158\uc744 \ub514\ubc84\uadf8\ud558\ub294 \ub3d9\uc548 <b>Task<\/b> \ud0ed\uc744 \ub20c\ub7ec \ub2e4\uc74c\uc758 \ud14c\uc774\ube14\uc744 \ud45c\uc2dc\ud569\ub2c8\ub2e4.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-489458\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/07\/JetBrains-Rider-EAP-2024-06-26-10-09-23.png\" alt=\"\" width=\"2228\" height=\"337\" \/>\n<figcaption class=\"wp-element-caption\">JetBrains Rider\uc758 Table \ubaa8\ub4dc Tasks \ubdf0<\/figcaption>\n<\/figure>\n<\/div>\n<p>\ub610\ud55c, \uc6b0\uce21 \uc0c1\ub2e8\uc5d0\uc11c <b>Graph(\uadf8\ub798\ud504)<\/b> \ubdf0\ub97c \uc120\ud0dd\ud558\uc5ec \uc804\ud658\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-489480\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/07\/JetBrains-Rider-EAP-2024-06-26-10-09-49.png\" alt=\"\" width=\"2220\" height=\"860\" \/>\n<figcaption class=\"wp-element-caption\">JetBrains Rider\uc758 Graph \ubaa8\ub4dc Tasks \ubdf0<\/figcaption>\n<\/figure>\n<\/div>\n<p>Graph \ubdf0\uc5d0\uc11c \uc2a4\ud0dd \ud56d\ubaa9\uc5d0 \ub9c8\uc6b0\uc2a4 \ucee4\uc11c\ub97c \uc62c\ub824 \ub193\uc73c\uba74 \ud589\uc758 \uc815\ubcf4\ub97c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-489492\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/07\/JetBrains-Rider-EAP-2024-06-26-10-10-53.png\" alt=\"\" width=\"1038\" height=\"446\" \/>\n<figcaption class=\"wp-element-caption\">Graph \ubdf0\uc5d0\uc11c \ud589 \ud45c\uc2dc\ud558\uae30<\/figcaption>\n<\/figure>\n<\/div>\n<p>Tasks\ub85c \uc791\uc5c5\ud560 \ub54c \uc791\uc5c5\uc758 \uc0c1\ud0dc\ub294 \ub2e4\uc74c <b>\ub2e4\uc12f \uac00\uc9c0<\/b> \uc911 \ud558\ub098\uc785\ub2c8\ub2e4.<\/p>\n<ul>\n<li><b>Active(\ud65c\uc131\ud654)<\/b>: \ud604\uc7ac \uc2e4\ud589 \uc911\uc778 \uc0c1\ud0dc\uc785\ub2c8\ub2e4.<\/li>\n<li><b>Scheduled(\uc608\uc57d\ub428)<\/b>: \uc791\uc5c5\uc774 \uc0dd\uc131\ub418\uc5c8\uc73c\ub098 \uc544\uc9c1 \uc2e4\ud589\ub418\uc9c0 \uc54a\uc740 \uc0c1\ud0dc\uc785\ub2c8\ub2e4.<\/li>\n<li><b>Awaiting(\ub300\uae30 \uc911)<\/b>: \uc791\uc5c5\uc774 \ub300\uae30 \uc911\uc778 \uc0c1\ud0dc\uc774\ub098 \ub2e4\ub978 \uc791\uc5c5\uc744 \uae30\ub2e4\ub9ac\uace0 \uc788\ub294 \uc911\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<li><b>Blocked(\ucc28\ub2e8\ub428)<\/b>: \uc791\uc5c5\uc774 \uc2a4\ud0dd\uc758 \uc0c1\ub2e8\uc5d0 \uc788\uc73c\uba70 \uc774 \uc791\uc5c5\uc744 \uc2e4\ud589\ud558\ub294 \uc2a4\ub808\ub4dc\uac00 \ucc28\ub2e8\ub41c \uc0c1\ud0dc\uc785\ub2c8\ub2e4(\ud734\uba74, \uc7a0\uae08 \ub300\uae30 \ub4f1). \uc2a4\ud0dd\uc0c1\uc5d0\uc11c \ub354 \ub192\uc774 \uc704\uce58\ud55c \ub2e4\ub978 \uc791\uc5c5\uc774 \uc788\uc744 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<li><b>Deadlocked(\uad50\ucc29)<\/b>: \uc791\uc5c5\uc774 \ud558\ub098\uc758 \ub9ac\uc18c\uc2a4\ub97c \ub450\uace0 \uacbd\ud569\ud558\uace0 \uc788\uc73c\uba70, \uc911\ub300\ud55c \ubb38\uc81c\uac00 \uc788\ub294 \uc0c1\ud0dc\uc785\ub2c8\ub2e4.<\/li>\n<\/ul>\n<p>\uac00\uc7a5 \uc77c\ubc18\uc801\uc778 \uc2dc\ub098\ub9ac\uc624\ub97c \uc0b4\ud3b4\ubcf4\uc558\uc73c\ub2c8 \uc774\uc81c \uc0c1\uc704 \uc791\uc5c5\uc744 \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<h2 class=\"wp-block-heading\">\uc0c1\uc704 \uc791\uc5c5<\/h2>\n<p>\uc0c1\uc704 \uc791\uc5c5\uc744 \uc0dd\uc131\ud558\uba74 \ub17c\ub9ac\uc801\uc73c\ub85c \uc791\uc5c5\uc744 \uadf8\ub8f9\ud654\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc791\uc5c5 \ub0b4\uc5d0 \uc791\uc5c5\uc744 \uc0dd\uc131\ud560 \ub54c\ub294 <code>TaskCreationOptions.AttachedToParent<\/code>\ub97c \uc0ac\uc6a9\ud574\uc11c \uc0c8\ub85c\uc6b4 \uc791\uc5c5\uc744 \uc774\ub97c \ud3ec\ud568\ud558\ub294 \uc791\uc5c5\uc5d0 \uc5f0\uacb0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"rider-code-highlight rider-code-highlight__dark\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"\">&lt;span class=&quot;keyword&quot;&gt;await&lt;\/span&gt; &lt;span class=&quot;method-name&quot;&gt;ParentedTasks&lt;\/span&gt;();\n\n&lt;span class=&quot;class-name&quot;&gt;Task&lt;\/span&gt; &lt;span class=&quot;method-name&quot;&gt;ParentedTasks&lt;\/span&gt;()\n{\n    &lt;span class=&quot;comment&quot;&gt;\/\/ Parent task&lt;\/span&gt;\n    &lt;span class=&quot;keyword&quot;&gt;var&lt;\/span&gt; &lt;span class=&quot;local-name&quot;&gt;parentTask&lt;\/span&gt; &lt;span class=&quot;operator&quot;&gt;=&lt;\/span&gt; &lt;span class=&quot;class-name&quot;&gt;Task&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;property-name static-symbol&quot;&gt;Factory&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;method-name&quot;&gt;StartNew&lt;\/span&gt;(() &lt;span class=&quot;operator&quot;&gt;=&gt;&lt;\/span&gt;\n    {\n        &lt;span class=&quot;static-symbol class-name&quot;&gt;Console&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;static-symbol method-name&quot;&gt;WriteLine&lt;\/span&gt;(&lt;span class=&quot;string&quot;&gt;&quot;Parent task started.&quot;&lt;\/span&gt;);\n\n        &lt;span class=&quot;comment&quot;&gt;\/\/ Child task&lt;\/span&gt;\n        &lt;span class=&quot;keyword&quot;&gt;var&lt;\/span&gt; &lt;span class=&quot;local-name&quot;&gt;task&lt;\/span&gt; &lt;span class=&quot;operator&quot;&gt;=&lt;\/span&gt; &lt;span class=&quot;class-name&quot;&gt;Task&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;property-name static-symbol&quot;&gt;Factory&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;method-name&quot;&gt;StartNew&lt;\/span&gt;(() &lt;span class=&quot;operator&quot;&gt;=&gt;&lt;\/span&gt;\n        {\n            &lt;span class=&quot;static-symbol class-name&quot;&gt;Console&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;method-name static-symbol&quot;&gt;WriteLine&lt;\/span&gt;(&lt;span class=&quot;string&quot;&gt;&quot;Child task started.&quot;&lt;\/span&gt;);\n            &lt;span class=&quot;class-name&quot;&gt;Task&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;static-symbol method-name&quot;&gt;Delay&lt;\/span&gt;(&lt;span class=&quot;number&quot;&gt;2000&lt;\/span&gt;)&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;method-name&quot;&gt;Wait&lt;\/span&gt;(); &lt;span class=&quot;comment&quot;&gt;\/\/ Simulating some work&lt;\/span&gt;\n            &lt;span class=&quot;class-name static-symbol&quot;&gt;Console&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;method-name static-symbol&quot;&gt;WriteLine&lt;\/span&gt;(&lt;span class=&quot;string&quot;&gt;&quot;Child task completed.&quot;&lt;\/span&gt;);\n        }, &lt;span class=&quot;enum-name&quot;&gt;TaskCreationOptions&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;enum-member-name&quot;&gt;AttachedToParent&lt;\/span&gt;);\n\n        &lt;span class=&quot;class-name static-symbol&quot;&gt;Console&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;method-name static-symbol&quot;&gt;WriteLine&lt;\/span&gt;(&lt;span class=&quot;string&quot;&gt;&quot;Parent task doing some work.&quot;&lt;\/span&gt;);\n    }, &lt;span class=&quot;enum-name&quot;&gt;TaskCreationOptions&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;enum-member-name&quot;&gt;AttachedToParent&lt;\/span&gt;);\n\n    &lt;span class=&quot;comment&quot;&gt;\/\/ Wait for parent task to complete, which includes the children&lt;\/span&gt;\n    &lt;span class=&quot;local-name&quot;&gt;parentTask&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;method-name&quot;&gt;Wait&lt;\/span&gt;();\n\n    &lt;span class=&quot;class-name static-symbol&quot;&gt;Console&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;method-name static-symbol&quot;&gt;WriteLine&lt;\/span&gt;(&lt;span class=&quot;string&quot;&gt;&quot;Parent task completed.&quot;&lt;\/span&gt;);\n    &lt;span class=&quot;keyword-control&quot;&gt;return&lt;\/span&gt; &lt;span class=&quot;class-name&quot;&gt;Task&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;property-name static-symbol&quot;&gt;CompletedTask&lt;\/span&gt;;\n}<\/pre>\n<div class=\"rider-code-highlight-btn-copy\">\n<div class=\"rider-code-highlight-tooltip\">\ud074\ub9bd\ubcf4\ub4dc\uc5d0 \ubcf5\uc0ac<\/div>\n<\/div>\n<\/div>\n<p>\ucf54\ub4dc\ub97c \uc2e4\ud589\ud55c \ub2e4\uc74c Task(\uc791\uc5c5) \ubdf0\ub97c \ubcf4\uba74 \ud558\uc704 \uc791\uc5c5\uc774 \uc0c1\uc704\uc5d0 \uc131\uacf5\uc801\uc73c\ub85c \ucd94\uac00\ub41c \uac83\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-489503\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/07\/JetBrains-Rider-EAP-2024-06-26-10-25-41.png\" alt=\"\" width=\"2222\" height=\"400\" \/>\n<figcaption class=\"wp-element-caption\">\ub2e4\ub978 \uc791\uc5c5\uc758 \uc0c1\uc704\uac00 \ub41c \uc791\uc5c5 \ud45c\uc2dc<\/figcaption>\n<\/figure>\n<\/div>\n<p>\uc791\uc5c5\uc774 \uc0c8\ub85c \uc0dd\uc131\ub420 \ub54c\ub9c8\ub2e4 .NET \ub7f0\ud0c0\uc784\uc774 \uc815\uc218 <code>Id<\/code>\ub97c \ud560\ub2f9\ud55c\ub2e4\ub294 \uc810\uc5d0 \uc720\uc758\ud558\uc138\uc694. \uc774\ub7ec\ud55c \uc2dd\ubcc4\uc790\ub85c \ud604\uc7ac \ud504\ub85c\uc138\uc2a4 \ub0b4\uc5d0 \uc788\ub294 \uc791\uc5c5\uc744 \ucd94\uc801\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774\ubc88\uc5d0\ub294 Graph(\uadf8\ub798\ud504) \ubdf0\uc5d0 \ub450 \uac1c\uc758 \ube44\ub3d9\uae30 \ub17c\ub9ac \uc2a4\ud0dd\uc774 \ud45c\uc2dc\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uc2a4\ud0dd\uc740 <code>Wait<\/code> \ubc0f \ubc18\ud658\ud558\ub294 <code>Task.CompletedTask<\/code>\uc640 \uac19\uc740 \uba54\uc11c\ub4dc\ub97c \uc0ac\uc6a9\ud558\ub294 <code>ParentedTasks<\/code> \ucf54\ub4dc\uc758 \uacb0\uacfc\ub85c \ubc1c\uc0dd\ud569\ub2c8\ub2e4.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-489514\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/07\/JetBrains-Rider-EAP-2024-06-26-10-28-21.png\" alt=\"\" width=\"1322\" height=\"512\" \/>\n<figcaption class=\"wp-element-caption\">\ub450 \uac1c\uc758 \ube44\ub3d9\uae30 \ub17c\ub9ac \uc2a4\ud0dd \ud45c\uc2dc<\/figcaption>\n<\/figure>\n<\/div>\n<p>\uc88b\uc2b5\ub2c8\ub2e4. \uc791\uc5c5\uc774 \uc11c\ub85c \uad00\ub828\uc774 \uc788\uac70\ub098 \ubcc4\ub3c4\uc758 \ub17c\ub9ac \uc2a4\ud0dd\uc744 \uc0dd\uc131\ud588\ub294\uc9c0 \ud30c\uc545\ud558\uba74 \uc7a0\uc7ac\uc801\uc778 \uacbd\ud569 \uc870\uac74\uc774 \uc0dd\uc131\ub418\uc5c8\ub294\uc9c0 \ud310\ub2e8\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774\uc81c Tasks \ubdf0\ub85c \uc791\uc5c5\uc774 \uc5b4\ub5bb\uac8c \uc608\uc57d\ub418\uc5c8\ub294\uc9c0 \ud655\uc778\ud558\ub294 \ubc29\ubc95\uc744 \uc54c\uc544\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<h2 class=\"wp-block-heading\">\uc791\uc5c5 \uc2a4\ucf00\uc904\ub9c1<\/h2>\n<p>\uc5b8\uc81c\ub4e0\uc9c0 \uc791\uc5c5\uc744 <code>await<\/code> \uc0c1\ud0dc\ub85c \uc124\uc815\ud558\uba74 \uc791\uc5c5\uc774 \ucd94\ud6c4\uc5d0 \uc2e4\ud589\ub418\ub3c4\ub85d \uc608\uc57d\ub429\ub2c8\ub2e4. \uc774\ub294 \uc791\uc5c5\uc774 \uc608\uc57d\ub41c \ud6c4 \uc989\uc2dc \ub610\ub294 \ub2e4\ub978 \uc608\uc57d \uc791\uc5c5\uc774 \uc2e4\ud589\ub41c \ud6c4\uc5d0 \uc77c\uc5b4\ub0a9\ub2c8\ub2e4. \uba87\uba87 \uc791\uc5c5\uc744 \uc608\uc57d\ud558\uace0 \ud574\ub2f9 \uc791\uc5c5\uc774 \uc644\ub8cc\ub420 \ub54c\uae4c\uc9c0 \uae30\ub2e4\ub9ac\ub294 \uc608\uc2dc\ub97c \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"rider-code-highlight rider-code-highlight__dark\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"\">&lt;span class=&quot;keyword&quot;&gt;await&lt;\/span&gt; &lt;span class=&quot;method-name&quot;&gt;ScheduledWork&lt;\/span&gt;();\n&lt;span class=&quot;keyword&quot;&gt;async&lt;\/span&gt; &lt;span class=&quot;class-name&quot;&gt;Task&lt;\/span&gt; &lt;span class=&quot;method-name&quot;&gt;ScheduledWork&lt;\/span&gt;()\n{\n    &lt;span class=&quot;static-symbol class-name&quot;&gt;Console&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;static-symbol method-name&quot;&gt;Write&lt;\/span&gt;(&lt;span class=&quot;string&quot;&gt;&quot;Let&#039;s work...&quot;&lt;\/span&gt;);\n    &lt;span class=&quot;keyword&quot;&gt;var&lt;\/span&gt; &lt;span class=&quot;local-name&quot;&gt;tasks&lt;\/span&gt; &lt;span class=&quot;operator&quot;&gt;=&lt;\/span&gt; &lt;span class=&quot;class-name static-symbol&quot;&gt;Enumerable&lt;\/span&gt;\n        &lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;static-symbol method-name&quot;&gt;Range&lt;\/span&gt;(&lt;span class=&quot;number&quot;&gt;1&lt;\/span&gt;, &lt;span class=&quot;number&quot;&gt;10&lt;\/span&gt;)\n        &lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;extension-method-name&quot;&gt;Select&lt;\/span&gt;((&lt;span class=&quot;parameter-name&quot;&gt;i&lt;\/span&gt;) &lt;span class=&quot;operator&quot;&gt;=&gt;&lt;\/span&gt; &lt;span class=&quot;class-name&quot;&gt;Task&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;method-name static-symbol&quot;&gt;Run&lt;\/span&gt;(() &lt;span class=&quot;operator&quot;&gt;=&gt;&lt;\/span&gt; &lt;span class=&quot;class-name static-symbol&quot;&gt;Console&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;method-name static-symbol&quot;&gt;Write&lt;\/span&gt;(&lt;span class=&quot;parameter-name&quot;&gt;i&lt;\/span&gt;)));\n\n    &lt;span class=&quot;keyword&quot;&gt;await&lt;\/span&gt; &lt;span class=&quot;class-name&quot;&gt;Task&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;method-name static-symbol&quot;&gt;WhenAll&lt;\/span&gt;(&lt;span class=&quot;local-name&quot;&gt;tasks&lt;\/span&gt;);\n}<\/pre>\n<div class=\"rider-code-highlight-btn-copy\">\n<div class=\"rider-code-highlight-tooltip\">\ud074\ub9bd\ubcf4\ub4dc\uc5d0 \ubcf5\uc0ac<\/div>\n<\/div>\n<\/div>\n<p><code>Task.WhenAll<\/code>\uc740 \uc81c\uacf5\ub41c \ubaa8\ub4e0 \uc791\uc5c5\uc744 \uc2e4\ud589\ud558\ub824\uace0 \uc2dc\ub3c4\ud558\uba70, \uc774 \ubaa8\ub4e0 \uc791\uc5c5\uc744 \ucd94\ud6c4\uc5d0 \uc2e4\ud589\ud558\ub3c4\ub85d \uc608\uc57d\ud569\ub2c8\ub2e4. \uc774\ub294 Tasks(\uc791\uc5c5) \ubdf0\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-489525\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/07\/JetBrains-Rider-EAP-2024-06-26-10-44-01.png\" alt=\"\" width=\"2218\" height=\"848\" \/>\n<figcaption class=\"wp-element-caption\">\uc0dd\uc131\ub41c 10\uac1c\uc758 \uc791\uc5c5 \uc911 \uc608\uc57d\ub41c \uc791\uc5c5<\/figcaption>\n<\/figure>\n<\/div>\n<p>\ucd94\uac00\uc801\uc73c\ub85c <code>Task.WhenAll<\/code>\uc744 \uc0ac\uc6a9\ud558\uba74 \uc774\ub7ec\ud55c \uc5f0\uc0b0\uc774 \uc2e4\ud589\ub418\ub294 \uad6c\uc870\uc778 \ube44\ub3d9\uae30 \ub17c\ub9ac \uc2a4\ud0dd\uc774 \uc0dd\uc131\ub429\ub2c8\ub2e4.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-489539\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/07\/JetBrains-Rider-EAP-2024-06-26-10-46-40.png\" alt=\"\" width=\"1684\" height=\"344\" \/>\n<figcaption class=\"wp-element-caption\">\ub450 \uac1c\uc758 \ube44\ub3d9\uae30 \ub17c\ub9ac \uc2a4\ud0dd. \uc774 \uc911 \ud558\ub098\ub294 10\uac1c\uc758 \uac12\uc744 \ud45c\uc2dc<\/figcaption>\n<\/figure>\n<\/div>\n<p>\ub514\ubc84\uadf8 \uc138\uc158 \uc911 \ucf54\ub4dc\ub97c \ub2e8\uacc4\ubcc4\ub85c \uc2e4\ud589\ud558\uba74 \uc791\uc5c5\uc774 \uc644\ub8cc\ub418\uba74\uc11c \uc791\uc5c5 \ubaa9\ub85d\uc774 \uc904\uc5b4\ub4dc\ub294 \uac83\uc744 \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub610\ud55c, \uc5ec\ub7ec \uc791\uc5c5\uc774 \ub3d9\uc2dc\uc5d0 \uc2e4\ud589\ub418\ub294 \uac83\ub3c4 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-489561\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/07\/JetBrains-Rider-EAP-2024-06-26-10-47-51.png\" alt=\"\" width=\"2223\" height=\"1438\" \/>\n<figcaption class=\"wp-element-caption\">\uc791\uc5c5\uc774 \uc904\uc5b4\ub4dc\ub294 \uac83\uc744 \ubcf4\uc5ec\uc8fc\ub294 Tasks \ubdf0<\/figcaption>\n<\/figure>\n<\/div>\n<p>\uc791\uc5c5\uc774 \uc644\ub8cc\ub418\ub294 \uac83\uc740 \ub9cc\uc871\uc2a4\ub7fd\uc9c0\ub9cc \ub108\ubb34 \uc624\ub798 \uc9c0\uc18d\ub41c\ub2e4\uba74 \uc88b\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uadf8\ub7ec\uba74 \uc791\uc5c5\uc744 \ub2e4\ub8f0 \ub54c \uac00\uc7a5 \ubb34\uc11c\uc6b4 \uc2dc\ub098\ub9ac\uc624\uc778 \uad50\ucc29 \uc0c1\ud0dc\ub85c \ub118\uc5b4\uac00\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<h2 class=\"wp-block-heading\">\uad50\ucc29 \uc0c1\ud0dc<\/h2>\n<p>\uad50\ucc29 \uc0c1\ud0dc\ub97c \uc77c\uc73c\ud0a4\ub294 \uac00\uc7a5 \uc77c\ubc18\uc801\uc778 \uc774\uc720\ub294 \uc7a0\uae08 \uba54\ucee4\ub2c8\uc998\uc73c\ub85c \ubcf4\ud638\ub418\ub294 \uacf5\uc720 \ub9ac\uc18c\uc2a4\ub97c \ub450\uace0 \uacbd\ud569\uc774 \ubc1c\uc0dd\ud558\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4. \uacf5\uc720 \ub9ac\uc18c\uc2a4\ub97c \ucc98\ub9ac\ud560 \ub54c \uc7a0\uae08\uc740 \ud544\uc218\uc801\uc774\uc9c0\ub9cc \uc571\uc744 \uc190\uc0c1\uc2dc\ud0a4\ub294 \ubb38\uc81c\ub97c \uc77c\uc73c\ud0ac \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc2a4\ub9b4 \uc788\ub294 \uc0b6\ub3c4 \uc7ac\ubbf8\ub294 \uc788\uc73c\ub2c8 \uad50\ucc29 \uc0c1\ud0dc\ub97c \ud55c \ubc88 \uc77c\uc73c\ucf1c \ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \ub354 \uc911\uc694\ud55c \ubaa9\uc801\uc740 Tasks(\uc791\uc5c5) \ubdf0\ub85c \uad50\ucc29 \uc0c1\ud0dc\ub97c \uc5b4\ub5bb\uac8c \uc2dd\ubcc4\ud558\ub294\uc9c0 \uc54c\uc544\ubcf4\ub294 \uac83\uc785\ub2c8\ub2e4. \uac19\uc740 \ubcc0\uc218\ub97c \uc7a0\uadf8\ub824\uace0 \uc2dc\ub3c4\ud558\ub294 \ub450 \uac1c\uc758 \uc791\uc5c5\uc744 \uc608\uc57d\ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"rider-code-highlight rider-code-highlight__dark\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"\">&lt;span class=&quot;keyword&quot;&gt;await&lt;\/span&gt; &lt;span class=&quot;method-name&quot;&gt;Deadlock&lt;\/span&gt;();\n\n&lt;span class=&quot;comment&quot;&gt;\/\/ This method will cause a deadlock&lt;\/span&gt;\n&lt;span class=&quot;comment&quot;&gt;\/\/ proceed with caution, oOOoOOoOo! ?&lt;\/span&gt;\n&lt;span class=&quot;keyword&quot;&gt;async&lt;\/span&gt; &lt;span class=&quot;class-name&quot;&gt;Task&lt;\/span&gt; &lt;span class=&quot;method-name&quot;&gt;Deadlock&lt;\/span&gt;()\n{\n    &lt;span class=&quot;keyword&quot;&gt;object&lt;\/span&gt; &lt;span class=&quot;local-name&quot;&gt;one&lt;\/span&gt; &lt;span class=&quot;operator&quot;&gt;=&lt;\/span&gt; &lt;span class=&quot;keyword&quot;&gt;new&lt;\/span&gt;();\n    &lt;span class=&quot;keyword&quot;&gt;object&lt;\/span&gt; &lt;span class=&quot;local-name&quot;&gt;two&lt;\/span&gt; &lt;span class=&quot;operator&quot;&gt;=&lt;\/span&gt; &lt;span class=&quot;keyword&quot;&gt;new&lt;\/span&gt;();\n\n    &lt;span class=&quot;keyword&quot;&gt;var&lt;\/span&gt; &lt;span class=&quot;local-name&quot;&gt;timer&lt;\/span&gt; &lt;span class=&quot;operator&quot;&gt;=&lt;\/span&gt; &lt;span class=&quot;keyword&quot;&gt;new&lt;\/span&gt; &lt;span class=&quot;namespace-name&quot;&gt;System&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;namespace-name&quot;&gt;Timers&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;class-name&quot;&gt;Timer&lt;\/span&gt;(\n        &lt;span class=&quot;struct-name&quot;&gt;TimeSpan&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;method-name static-symbol&quot;&gt;FromSeconds&lt;\/span&gt;(&lt;span class=&quot;number&quot;&gt;2&lt;\/span&gt;)\n    ) { &lt;span class=&quot;property-name&quot;&gt;Enabled&lt;\/span&gt; &lt;span class=&quot;operator&quot;&gt;=&lt;\/span&gt; &lt;span class=&quot;keyword&quot;&gt;true&lt;\/span&gt;, &lt;span class=&quot;property-name&quot;&gt;AutoReset&lt;\/span&gt; &lt;span class=&quot;operator&quot;&gt;=&lt;\/span&gt; &lt;span class=&quot;keyword&quot;&gt;false&lt;\/span&gt; };\n\n    &lt;span class=&quot;local-name&quot;&gt;timer&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;event-name&quot;&gt;Elapsed&lt;\/span&gt; &lt;span class=&quot;operator&quot;&gt;+=&lt;\/span&gt; (&lt;span class=&quot;keyword&quot;&gt;_&lt;\/span&gt;, &lt;span class=&quot;keyword&quot;&gt;_&lt;\/span&gt;) &lt;span class=&quot;operator&quot;&gt;=&gt;&lt;\/span&gt;\n    {\n        &lt;span class=&quot;comment&quot;&gt;\/\/ only see this if we&#039;re deadlocked&lt;\/span&gt;\n        &lt;span class=&quot;class-name static-symbol&quot;&gt;Console&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;method-name static-symbol&quot;&gt;WriteLine&lt;\/span&gt;(&lt;span class=&quot;string&quot;&gt;&quot;?Deadlock&quot;&lt;\/span&gt;);\n    };\n\n    &lt;span class=&quot;keyword&quot;&gt;await&lt;\/span&gt; &lt;span class=&quot;class-name&quot;&gt;Task&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;method-name static-symbol&quot;&gt;WhenAll&lt;\/span&gt;(&lt;span class=&quot;class-name&quot;&gt;Task&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;method-name static-symbol&quot;&gt;Run&lt;\/span&gt;(() &lt;span class=&quot;operator&quot;&gt;=&gt;&lt;\/span&gt;\n    {\n        &lt;span class=&quot;class-name static-symbol&quot;&gt;Console&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;static-symbol method-name&quot;&gt;WriteLine&lt;\/span&gt;(&lt;span class=&quot;string&quot;&gt;&quot;Getting lock for one.&quot;&lt;\/span&gt;);\n        &lt;span class=&quot;keyword&quot;&gt;lock&lt;\/span&gt; (&lt;span class=&quot;local-name&quot;&gt;one&lt;\/span&gt;)\n        {\n            &lt;span class=&quot;class-name&quot;&gt;Thread&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;static-symbol method-name&quot;&gt;Sleep&lt;\/span&gt;(&lt;span class=&quot;number&quot;&gt;1000&lt;\/span&gt;);\n            &lt;span class=&quot;static-symbol class-name&quot;&gt;Console&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;static-symbol method-name&quot;&gt;WriteLine&lt;\/span&gt;(&lt;span class=&quot;string&quot;&gt;&quot;Getting lock two in first task.&quot;&lt;\/span&gt;);\n            &lt;span class=&quot;keyword&quot;&gt;lock&lt;\/span&gt; (&lt;span class=&quot;local-name&quot;&gt;two&lt;\/span&gt;)\n            {\n            }\n        }\n    }), &lt;span class=&quot;class-name&quot;&gt;Task&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;method-name static-symbol&quot;&gt;Run&lt;\/span&gt;(() &lt;span class=&quot;operator&quot;&gt;=&gt;&lt;\/span&gt;\n    {\n        &lt;span class=&quot;static-symbol class-name&quot;&gt;Console&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;method-name static-symbol&quot;&gt;WriteLine&lt;\/span&gt;(&lt;span class=&quot;string&quot;&gt;&quot;Getting lock two in second task.&quot;&lt;\/span&gt;);\n        &lt;span class=&quot;keyword&quot;&gt;lock&lt;\/span&gt; (&lt;span class=&quot;local-name&quot;&gt;two&lt;\/span&gt;)\n        {\n            &lt;span class=&quot;class-name&quot;&gt;Thread&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;method-name static-symbol&quot;&gt;Sleep&lt;\/span&gt;(&lt;span class=&quot;number&quot;&gt;1000&lt;\/span&gt;);\n            &lt;span class=&quot;class-name static-symbol&quot;&gt;Console&lt;\/span&gt;&lt;span class=&quot;operator&quot;&gt;.&lt;\/span&gt;&lt;span class=&quot;method-name static-symbol&quot;&gt;WriteLine&lt;\/span&gt;(&lt;span class=&quot;string&quot;&gt;&quot;Getting lock one in second task.&quot;&lt;\/span&gt;);\n            &lt;span class=&quot;keyword&quot;&gt;lock&lt;\/span&gt; (&lt;span class=&quot;local-name&quot;&gt;one&lt;\/span&gt;)\n            {\n            }\n        }\n    }));\n}<\/pre>\n<div class=\"rider-code-highlight-btn-copy\">\n<div class=\"rider-code-highlight-tooltip\">\ud074\ub9bd\ubcf4\ub4dc\uc5d0 \ubcf5\uc0ac<\/div>\n<\/div>\n<\/div>\n<p>\ucf54\ub4dc\ub97c \uc2e4\ud589\ud558\uba74 \uc571\uc774 \uc885\ub8cc\ub418\uc9c0 \uc54a\ub294\ub2e4\ub294 \uac83\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <b>Run(\uc2e4\ud589)<\/b> \ud234\ubc14\uc5d0\uc11c \uc77c\uc2dc \uc911\uc9c0 \ubc84\ud2bc\uc744 \ub20c\ub7ec \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc77c\uc2dc \uc911\uc9c0\ud558\uc138\uc694. \uc774\ub7f0, \uad50\ucc29 \uc0c1\ud0dc\ub124\uc694! \ucda9\uaca9\uc801\uc774\uc5d0\uc694! (\ubb3c\ub860 \uadf8\ub807\uac8c \ub180\ub77c\uc9c4 \uc54a\uc558\uc2b5\ub2c8\ub2e4)<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-489572\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/07\/JetBrains-Rider-EAP-2024-06-26-11-06-43.png\" alt=\"\" width=\"2040\" height=\"466\" \/>\n<figcaption class=\"wp-element-caption\">Tasks Table \ubdf0\uc5d0 \ud45c\uc2dc\ub41c \ud55c \uc30d\uc758 \uad50\ucc29 \uc0c1\ud0dc\uc5d0 \ube60\uc9c4 \uc791\uc5c5<\/figcaption>\n<\/figure>\n<\/div>\n<p>\ub450 \uac1c\uc758 \uc791\uc5c5\uc774 \uc11c\ub85c \uacbd\uc7c1\ud558\uace0 \uc788\uace0 \uc5b4\ub5bb\uac8c \uc774 \uc0c1\ud669\uc774 \ubc1c\uc0dd\ud588\ub294\uc9c0 \ubcf4\uc5ec\uc8fc\ub294 Graph(\uadf8\ub798\ud504) \ubdf0\ub294 \ub354 \ud765\ubbf8\ub86d\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-489583\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/07\/JetBrains-Rider-EAP-2024-06-26-11-07-39.png\" alt=\"\" width=\"1276\" height=\"530\" \/>\n<figcaption class=\"wp-element-caption\">Tasks\uc758 Graph \ubdf0\uc5d0 \ud45c\uc2dc\ub41c \ud55c \uc30d\uc758 \uad50\ucc29 \uc0c1\ud0dc\uc5d0 \ube60\uc9c4 \uc791\uc5c5<\/figcaption>\n<\/figure>\n<\/div>\n<p>\uad50\ucc29 \uc0c1\ud0dc\uc5d0 \ube60\uc9c4 \ub17c\ub9ac \uc2a4\ud0dd\uc744 \ub450 \ubc88 \ud074\ub9ad\ud558\uba74 \uad50\ucc29 \uc0c1\ud0dc\uac00 \uc788\ub294 \uc704\uce58\ub85c \uc774\ub3d9\ud569\ub2c8\ub2e4.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-489594\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/07\/JetBrains-Rider-EAP-2024-06-26-11-10-42.png\" alt=\"\" width=\"2144\" height=\"1890\" \/>\n<figcaption class=\"wp-element-caption\">JetBrains Rider\uc5d0\uc11c \uad50\ucc29 \uc0c1\ud0dc\ub97c \uc77c\uc73c\ud0a4\ub294 \ucf54\ub4dc\ub97c \ud45c\uc2dc<\/figcaption>\n<\/figure>\n<\/div>\n<p>\ud3b8\ub9ac\ud55c \ud0d0\uc0c9 \uae30\ub2a5\uc73c\ub85c \uad50\ucc29 \uc0c1\ud0dc\ub97c \uc190\uc27d\uac8c \ucc3e\uace0 \ud574\uacb0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h2 class=\"wp-block-heading\">\uacb0\ub860<\/h2>\n<p>\uc791\uc5c5 \ubdf0\ub294 \ud604\uc7ac <a href=\"https:\/\/jetbrains.com\/ko-kr\/rider\/download\/\" target=\"_blank\" rel=\"noopener\">JetBrains Rider 2024.2 EAP<\/a>\uc5d0\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ub3c4\uad6c\uc758 \ubbf8\ub798\ub97c \ub9cc\ub4e4 \uc218 \uc788\ub3c4\ub85d \ud53c\ub4dc\ubc31\uc744 \uacf5\uc720\ud574 \uc8fc\uc138\uc694. JetBrains\ub294 .NET \uac1c\ubc1c\uc5d0\uc11c \uc791\uc5c5\uc744 \ucc98\ub9ac\ud558\uae30\uac00 \uc0c1\ub2f9\ud788 \uc5b4\ub824\uc6b8 \uc218 \uc788\ub2e4\ub294 \uc0ac\uc2e4\uc744 \uc798 \uc54c\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ucd94\uac00 \ub3c4\uad6c\uac00 \uc5b4\ub824\uc6c0\uc744 \uadf9\ubcf5\ud558\ub294 \ub370 \ub3c4\uc6c0\uc774 \ub418\uae38 \ubc14\ub78d\ub2c8\ub2e4. \uc9c1\uc811 \uc0ac\uc6a9\ud574 \ubcf4\uace0 \uae30\uc874\uc758 \ucf54\ub4dc\ub97c \ucd5c\uc801\ud654\ud558\uac70\ub098 \ucf54\ub4dc \ubca0\uc774\uc2a4\uc5d0 \uc788\ub358 \uc624\ub798\ub41c \ubb38\uc81c\ub97c \ucc3e\ub294 \ub370 \ub3c4\uc6c0\uc774 \ub418\ub294\uc9c0 \ud655\uc778\ud574 \ubcf4\uc138\uc694.<\/p>\n<p>\uc77d\uc5b4\uc8fc\uc154\uc11c \uac10\uc0ac\ub4dc\ub9ac\uba70 \uc5ec\ub7ec\ubd84\uc758 \uc758\uacac\uacfc \ub313\uae00\uc744 \uae30\ub300\ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<div class=\"buttons\">\n<div class=\"buttons__row\"><a class=\"btn\" href=\"https:\/\/jetbrains.com\/ko-kr\/rider\/download\/\" target=\"\" rel=\"noopener\">\ucd5c\uc2e0 \ubc84\uc804\uc744 \ub2e4\uc6b4\ub85c\ub4dc\ud558\uc138\uc694!<\/a><\/div>\n<\/div>\n<p><sub><em>\uc774\ubbf8\uc9c0 \ucd9c\ucc98: <a href=\"https:\/\/unsplash.com\/@edenconstantin0\" target=\"_blank\" rel=\"noopener\">Eden Constantino<\/a><\/em><\/sub><\/p>\n<p><em>\uac8c\uc2dc\ubb3c \uc6d0\ubb38 \uc791\uc131\uc790<\/em><\/p>\n\n    <div class=\"about-author \">\n        <div class=\"about-author__box\">\n            <div class=\"row\">\n                <div class=\"about-author__box-img\">\n                    <img decoding=\"async\" src=\"https:\/\/secure.gravatar.com\/avatar\/?s=200&#038;r=g\" width=\"200\" height=\"200\" alt=\"\" loading=\"lazy\"  class=\"avatar avatar-200 wp-user-avatar wp-user-avatar-200 photo avatar-default\">\n                <\/div>\n                <div class=\"about-author__box-text\">\n                                                        <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n","protected":false},"author":964,"featured_media":500434,"comment_status":"closed","ping_status":"closed","template":"","categories":[4992],"tags":[2026,211,1978,1110],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/dotnet\/500388"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/dotnet"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/types\/dotnet"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/users\/964"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/comments?post=500388"}],"version-history":[{"count":9,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/dotnet\/500388\/revisions"}],"predecessor-version":[{"id":500466,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/dotnet\/500388\/revisions\/500466"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media\/500434"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media?parent=500388"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/categories?post=500388"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/tags?post=500388"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/cross-post-tag?post=500388"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}