C# 并行ForEach';s

C# 并行ForEach';s,c#,.net,rhino-mocks,task-parallel-library,C#,.net,Rhino Mocks,Task Parallel Library,当通过闭包在Parallel.ForEach内部访问模拟对象时,我们如何断言它被调用?我假设因为每次调用都在不同的线程上,Rhino Mock会丢失对对象的跟踪 伪代码: var someStub = MockRepository.GenerateStub() Parallel.Foreach(collectionOfInts, anInt => someStub.DoSomething(anInt)) someStub.AssertWasCalled(s => s.DoSome

当通过闭包在Parallel.ForEach内部访问模拟对象时,我们如何断言它被调用?我假设因为每次调用都在不同的线程上,Rhino Mock会丢失对对象的跟踪

伪代码:

var someStub = MockRepository.GenerateStub()

Parallel.Foreach(collectionOfInts, anInt => someStub.DoSomething(anInt))

someStub.AssertWasCalled(s => s.DoSomething, Repeat.Five.Times)
此测试将返回一个期望冲突,期望存根被调用5次,但实际被调用0次


我们可以告诉lambda如何跟踪线程本地存根对象吗?

好吧,作为一个临时措施,我们刚刚将对Parallel.ForEach的调用抽象到另一个类中…

某种程度上,我想这是正确的答案,否则我们只是对并行任务库进行单元测试,对吗?