새 작업으로 게임을 처음 시도했지만 이해가되지 않는 일이 있습니다.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의 목록을 해주면 것을 세 가지 작업 모두가 제공된 목록의 마지막 경로를 사용합니다. 단계별로 진행하면 (그리고 루프 처리 속도가 느려짐) 루프의 각 경로가 사용됩니다.
누군가가 무슨 일이 일어나고 있는지 설명해주십시오. 왜 그런가요? 가능한 해결 방법은 무엇입니까? 당신이 StartNew
에 전달하는
내가 ReSharper에서를 사용하는 것이 좋습니다 수 :(거의 모든 사람을 잡는다이 특정 오류 및 기타 잠재적 인 버그는 나무와 모두를위한 –