Task
完成した(ではない)を作成したいTask<T>
。これを行うために.NETに組み込まれているものはありますか?
関連する質問: 完了した Task<T> を作成する
Task
完成した(ではない)を作成したいTask<T>
。これを行うために.NETに組み込まれているものはありますか?
関連する質問: 完了した Task<T> を作成する
Task<T>
は暗黙的にに変換可能Task
であるため、完了したTask<T>
(T
任意の値を持つ) を取得し、それを使用します。このようなものを使用して、実際の結果がどこかにあるという事実を隠すことができます。
private static Task completedTask = Task.FromResult(false);
public static Task CompletedTask()
{
return completedTask;
}
結果を公開しておらず、タスクは常に完了しているため、単一のタスクをキャッシュして再利用できることに注意してください。
.NET 4.0 を使用していて、持っていない場合はFromResult
、次を使用して独自に作成できますTaskCompletionSource
。
public static Task<T> FromResult<T>(T value)
{
var tcs = new TaskCompletionSource<T>();
tcs.SetResult(value);
return tcs.Task;
}
Task.FromResult (.NET 4.5) を使用して、完了した を返すことができますTask<T>
。
非ジェネリックの が必要な場合は、 のサブクラスであるため、Task
いつでもTask.FromResult(0)
または 同様のものを使用できます。Task<T>
Task
You can use Nito.AsyncEx.TaskConstants.Completed from a great library AsyncEx from Stephen Cleary.
どうですか:
#pragma warning disable 1998
public async Task emptyTask() {
}
#pragma warning restore 1998
気にしない場合は、警告の抑制を省略できます。