メソッドを非同期的に開始するこの単純なコードがあります。コードを Task でラップTCS
するために使用します。
Task<int> DoWork()
{
var source = new TaskCompletionSource <int>();
Thread.Sleep(220);
source.SetResult(9999999);
return source.Task;
}
void Main()
{
Console.WriteLine(1);
var t1=Task.Factory.StartNew(()=>DoWork());
t1.ContinueWith(_=>Console.WriteLine ("doing something different "));
t1.ContinueWith(_=>Console.WriteLine ("finished , value is ="+_.Result.Result));
Console.WriteLine(2);
Console.ReadLine();
}
出力:
1
2
doing somethign different //those last 2 lines can be swapped
finished , value is =9999999
しかし今、私はそれを変換して使用したいと考えていますTask.FromResult<TResult>
。
これは十分に文書化 されていないので、どうすれば上記のコードを変換してTask.FroResult
代わりに使用できるのでしょうか?