ReSharper 重构了一个 foreach 循环,我不得不这样做。我想通过委托的 BeginInvoke 使用不同的参数生成一堆线程,存储在列表中,并将 IAsyncResults 存储在集合中:
var asyncResults = mylist.Select(x => myDelegate.BeginInvoke(x, null, null));
我的本能反应是,这不是一个好习惯。BeginInvoke 导致产生新线程的副作用,传递给 Select 的函数不应引起副作用。
或者也许没关系,因为我没有更改调用线程中的任何内容?