12,925
回編集
細 (文字列「<source lang」を「<syntaxhighlight lang」に置換) |
細 (文字列「</source>」を「</syntaxhighlight>」に置換) |
||
19行目: | 19行目: | ||
return iRet; | return iRet; | ||
} | } | ||
</ | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
47行目: | 47行目: | ||
return await taskAll.ConfigureAwait(false); | return await taskAll.ConfigureAwait(false); | ||
} | } | ||
</ | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
72行目: | 72行目: | ||
var taskAll = Task.WhenAll(task1, task2).ContinueWith(task3); // awaitは不要 | var taskAll = Task.WhenAll(task1, task2).ContinueWith(task3); // awaitは不要 | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
<syntaxhighlight lang="c#"> | <syntaxhighlight lang="c#"> | ||
96行目: | 96行目: | ||
await task3.ConfigureAwait(false); | await task3.ConfigureAwait(false); | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
状況にもよるが、処理が膨大になると可読性が落ちるので、<br> | 状況にもよるが、処理が膨大になると可読性が落ちるので、<br> | ||
122行目: | 122行目: | ||
return await Task.Delay(1000); | return await Task.Delay(1000); | ||
} | } | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
対策として、以下のように記述するとデッドロックが回避できる。(戻るスレッドはどこでもよい場合)<br> | 対策として、以下のように記述するとデッドロックが回避できる。(戻るスレッドはどこでもよい場合)<br> | ||
136行目: | 136行目: | ||
return await Task.Delay(1000).ConfigureAwait(false); | return await Task.Delay(1000).ConfigureAwait(false); | ||
} | } | ||
</ | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:C_Sharp]] | [[カテゴリ:C_Sharp]] |