新しいタスクで最初に試してみたいが、わからないことが起こっている。foreachループでタスクを開始する最後のアイテムの値を使用する
まず、コードはかなり簡単です。私はいくつかの画像ファイルへのパスのリストを渡し、およびそれらのそれぞれを処理するためにタスクを追加しよう:私が見つけた
public Boolean AddPictures(IList<string> paths)
{
Boolean result = (paths.Count > 0);
List<Task> tasks = new List<Task>(paths.Count);
foreach (string path in paths)
{
var task = Task.Factory.StartNew(() =>
{
Boolean taskResult = ProcessPicture(path);
return taskResult;
});
task.ContinueWith(t => result &= t.Result);
tasks.Add(task);
}
Task.WaitAll(tasks.ToArray());
return result;
}
私はちょうど言う、このラン、3のリストを許可すればということ3つのタスクすべてが提供されたリストの最後のパスを使用します。ステップスルーしてループの処理を遅くすると、ループからの各パスが使用されます。
誰かが何が起こっているのか、なぜ説明できますか?考えられる回避策?あなたはStartNew
に渡している
私はReSharperのを使用して提案することができる。この特定のエラーやその他の潜在的なバグが –