私は何かが足りないかもしれませんが、行うことの違いは何ですか?
public void MyMethod()
{
Task t = Task.Factory.StartNew(DoSomethingThatTakesTime);
t.Wait();
UpdateLabelToSayItsComplete();
}
public async void MyMethod()
{
var result = Task.Factory.StartNew(DoSomethingThatTakesTime);
await result;
UpdateLabelToSayItsComplete();
}
private void DoSomethingThatTakesTime()
{
Thread.Sleep(10000);
}
何かが足りないかもしれません
あなたはそうです。
やって違いは何である
Task.Wait
とはawait task
?
あなたはレストランのウェイターに昼食を注文します。注文を出した直後、友人が入ってあなたの隣に座り、会話を始めます。今、あなたは2つの選択肢があります。タスクが完了するまで友達を無視することができます-あなたはあなたのスープが到着するまで待って、あなたが待っている間他に何もすることができません。または、友達に返信して、友達が話すのをやめると、ウェイターがあなたにスープを持ってきます。
Task.Wait
タスクが完了するまでブロックします-タスクが完了するまで友達を無視します。await
メッセージキュー内のメッセージの処理を継続し、タスクが完了すると、「待機後に中断したところから再開してください」というメッセージをキューに入れます。あなたは友達と話し、会話が途切れるとスープが届きます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加