我有一个Web服务,我想通过并行发送多个请求来加载测试。在我看来,WF可能是一个有用的工具,可以灵活地快速修改负载/流量并以可见和可重复的方式捕获定时信息(这就是为什么WF是好的,对吧?)。从我的阅读到现在看来,尽管被称为Parallel和ParallelFor,但两个活动都不会并行运行所包含的活动,而是在单个线程上串行运行它们并等待所有封闭的活动完成。如果并行活动阻塞,则可以将其保留,并继续执行下一个并行活动。
This SO question/answer建议如果使用AsyncCodeActivity(即我可以调用Web服务的地方),那么
AsyncCodeActivity总是在活动执行期间创建一个无持久化块。这可以防止工作流运行时在异步工作过程中持久化工作流实例,并且还可以防止工作流实例在异步代码执行时卸载。
这显然不是我想要的。那么如何使用WF向Web服务发出多个并行请求,或者这是一个SPRH(方形挂钩圆孔)?
答案 0 :(得分:0)
我在WF4和并行性上找到了Ron Jacob's posts。看起来上述信息只是部分正确。 Ron的示例项目包含一些有用的测试用例,包括 ParallelAsyncWorkflowApplication 和注释因为使用了WorkflowApplication,活动将在CLR线程池分配的随机线程上运行。