C#で非同期操作を実現するにはどうすればよいですか?
C#では、非同期処理を実現するために非同期プログラミングモデルを使用することができます。次は、非同期処理を実現するいくつかの方法です。
- 非同期処理や待ちのキーワードを使用する:メソッドを定義する際、asyncキーワードを使って非同期メソッドであることを示し、メソッド内でawaitキーワードを使って非同期処理の完了を待つことができます。例えば:
public async Task<int> GetDataAsync()
{
// 异步操作
await Task.Delay(1000);
return 10;
}
- Taskクラスを使用すると、非同期タスクを作成し、Task.Runメソッドを使用して非同期操作を実行できます。例えば:
public Task<int> GetDataAsync()
{
return Task.Run(() =>
{
// 异步操作
Thread.Sleep(1000);
return 10;
});
}
- TaskCompletionSourceクラスを使用すると、非同期操作を手動で作成し、必要に応じて操作を完了することができます。例えば、
public Task<int> GetDataAsync()
{
var tcs = new TaskCompletionSource<int>();
// 异步操作
ThreadPool.QueueUserWorkItem(state =>
{
Thread.Sleep(1000);
tcs.SetResult(10);
});
return tcs.Task;
}
以上は非同期操作を実現するためのいくつかの方法です。開発者は具体的な状況に応じて適切な方法を選択して非同期操作を実現できます。