I'm creating an array of 5 tasks invoking the string-returning method "Essen"
tasks[0] = new Task(() => Philosoph.Essen("1", gabeln[2], gabeln[1])); tasks[1] = new Task(() => Philosoph.Essen("2", gabeln[3], gabeln[2])); tasks[2] = new Task(() => Philosoph.Essen("3", gabeln[4], gabeln[3])); tasks[3] = new Task(() => Philosoph.Essen("4", gabeln[5], gabeln[4])); tasks[4] = new Task(() => Philosoph.Essen("5", gabeln[1], gabeln[5])); Then I'm starting these Tasks using Parallel.ForEach
Parallel.ForEach(tasks, t => { t.Start(); }); Task.WaitAll(tasks); Method Essen is returning String
static public string Essen(String philosoph, String linkeGabel, String rechteGabel) { lock (linkeGabel) { lock (rechteGabel) { return ("Philosoph " + philosoph + "isst mit: " + linkeGabel + ", " + rechteGabel ); } } } How can I process Essen()-Return value at each of the 5 parallel processings? I'd like to write these return values into a listbox...