मैं नए कार्यों के साथ खेलने का पहला प्रयास कर रहा हूं, लेकिन कुछ ऐसा हो रहा है जिसे मैं समझ नहीं पा रहा हूं।फोरच में कार्य शुरू करना लूप का उपयोग अंतिम आइटम का मूल्य
सबसे पहले, कोड, जो कि सीधे सीधा है। मैं कुछ छवि फ़ाइलों के लिए पथ की एक सूची में गुजरती हैं, और उनमें से प्रत्येक पर कार्रवाई करने के कार्य जोड़ने के लिए प्रयास:
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 की एक सूची है कि यूनिट परीक्षण में पथ, सभी तीन कार्य प्रदान की गई सूची में अंतिम पथ का उपयोग करते हैं। यदि मैं (और लूप की प्रसंस्करण को धीमा कर देता हूं) के माध्यम से कदम उठाता हूं, तो लूप से प्रत्येक पथ का उपयोग किया जाता है।
क्या कोई यह बता सकता है कि क्या हो रहा है, और क्यों? संभावित कामकाज?
मैं ReSharper उपयोग करने का सुझाव मई पकड़ता यह विशेष रूप से त्रुटि और अन्य संभावित कीड़े आप –