は、私はこのような複数のタスクを作成するforeachループを持っている:作成したオブジェクトをタスクにどのように廃棄するのですか?
[編集:CreateDisposableAsyncを返しタスク[IDisposableを]]
foreach(...)
{
tasks.Add(CreateDisposableAsync());
}
と私は、これらのタスクのすべてに待っていて、すべての例外をキャッチし、後で:
try
{
await Task.WhenAll(tasks);
}
catch (AggregateException)
{
// handle exceptions
}
しかしCreateDisposableAsync()の呼び出しが、私はタスクのいずれかで例外があったかどうかを配置することにしたいIDisposableをし、返します。これどうやってするの?
[編集:それ自体が例外を投げたので、元のコードと間違って何もなかった場合CreateDisposableAsync()関数は、その作成されたオブジェクトを廃棄していることが判明した。]
「タスク」の種類は何ですか?あなたは処分する必要がありますか? https://blogs.msdn.microsoft.com/pfxteam/2012/03/25/do-i-need-to-dispose-of-tasks/ –
最も簡単な方法は、 'CreateDisposableAsync'が独自のリソースをクリーンアップすることです処分する必要のあるオブジェクトを処分する責任があります。 – Igor
@ LasseV.Karlsen戻り値の型はTask –