In the two following snippets, is the first one safe or must you do the second one?
By safe I mean is each thread guaranteed to call the method on the Foo from the s
In your case, you can avoid the problem without using the copying trick by mapping your ListOfFoo to a sequence of threads:
ListOfFoo
var threads = ListOfFoo.Select(foo => new Thread(() => foo.DoSomething())); foreach (var t in threads) { t.Start(); }