私は、タスクを起動し、結果を得るために、最後のcahinedタスクを返します。この方法があります:私は、同じタスクを返す同じメソッドを持ちたいけどTask.Factoryと、自動的にそれを起動することなくなり継続タスクインスタンスを開始するにはどうすればよいですか?
public Task<double> GetTask()
{
return Task.Factory.StartNew((() => 10))
.ContinueWith(i =>
{
return i.Result + 2;
})
.ContinueWith(i =>
{
return (double)i.Result;
});
}
を.StartNewこのように:
public Task<double> GetTask2()
{
return new Task<int>((() => 10))
.ContinueWith(i =>
{
return i.Result + 2;
})
.ContinueWith(i =>
{
return (double)i.Result;
});
}
とにかく私はGetTask2によって返されたタスクを開始し、結果を得る方法を見つけることができませんでした。どのように私はそれを開始し、結果を得ることができますか?
これは機能しません。最初の最初のタスクを開始する必要があります。チェーンの最後ではありません。 – usr
なぜですか?それは問題ではありません。メソッドからタスクをインスタンス化するだけです。その後、それを開始します。シンプル。 – MoonKnight
継続タスクで開始を呼び出しています。継続タスクを開始することはできません。 antecendentが完了すると自動的に起動します。あなたはそれを強制的に開始することはできません。 – usr