async
await
の使用のタイミングと方法
in c#、、は、強力なキーワードを強化し、非同期タスクの実行を促進します。それらを使用することは、非同期状態マシンと呼ばれる異なるメカニズムを使用するため、背景スレッドの作成と同じではありません。
例コードの詳細async
await
と:の作業方法を実証しましょう。
行動の説明async
await
<code class="language-csharp">private async void button1_Click(object sender, EventArgs e) { Task<int> access = DoSomethingAsync(); // 此处执行与任务无关的逻辑 int a = 1; // 立即执行,因为它不依赖于 DoSomethingAsync() int x = await access; // 等待 DoSomethingAsync() 完成 } async Task<int> DoSomethingAsync() { await Task.Delay(5000); // 使线程休眠 5 秒 return 1; }</code>
としてマークされています。 は、メインスレッドをブロックしない非同期タスクです。
button1_Click
は、async
が完了するまでDoSomethingAsync()
が完了すると、メインスレッドは実行を再開し、DoSomethingAsync()
await access;
およびbutton1_Click
メカニズムDoSomethingAsync()
DoSomethingAsync()
を使用すると、コンパイラは非同期状態マシンを生成します。この州のマシン管理タスクの取り付けと回復により、非同期操作は、単純化された方法で非同期操作を書き込み、実行できます。 await
x
ブロックのメインスレッドを防止しますasync
UIの応答能力が強化されたawait
以上がいつ、どのようにasyncを使用し、C#で待つ必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。