, factory, :
public List<string> DoStuffInParallel(IWorkerFactory factory)
{
var list = new System.Collections.Concurrent.ConcurrentBag<string>();
Parallel.For(0, 10, i =>
{
list.Add(factory.Create().GetString());
});
return list.ToList();
}
factory , Create() .
, , - (, ConcurrentBag). - bag, Parallel.For localinit/localFinally, / localFinally.
Edit
Re: factory ConcurrentBag<String>?
IMO, , ConcurrentBag - , . , , :
return Enumerable.Range(0, 10)
.Select(i => factory.Create().GetString())
.ToList();
. - .
public IList<string> DoStuffInParallel IEnumerable<string> ( /). Worker, , , .