Task<T>
örtük olarak dönüştürülebilir Task
, bu yüzden tamamlanmış Task<T>
(herhangi T
bir değerle) alın ve bunu kullanın. Gerçek bir sonucun bir yerlerde olduğu gerçeğini gizlemek için böyle bir şey kullanabilirsiniz.
private static Task completedTask = Task.FromResult(false);
public static Task CompletedTask()
{
return completedTask;
}
Sonucu göstermediğimiz ve görev her zaman tamamlandığından, tek bir görevi önbelleğe alabileceğimizi ve yeniden kullanabileceğimizi unutmayın.
.NET 4.0 kullanıyorsanız ve sahip FromResult
değilseniz, aşağıdakileri kullanarak kendiniz oluşturabilirsiniz TaskCompletionSource
:
public static Task<T> FromResult<T>(T value)
{
var tcs = new TaskCompletionSource<T>();
tcs.SetResult(value);
return tcs.Task;
}
It seems like the answer I'm getting from everyone is that using a garbage value like this is the correct way. That there isn't a way to do this without the garbage value is disappointing -- oh well.
Bunun ne gibi sorunları olduğunu düşünüyorsunuz? Tek bir önbellek kullanırsanızTask
, tüm programınız fazladan bir miktar bellek alır. Bu hiçbir şey . Ayrıca, bunu yapmadan tamamlanmış bir görev yaratabilir, daha iyi olmazdı.