【发布时间】:2014-08-18 10:58:57
【问题描述】:
我使用过并发,但我不知道有什么好的方法来测试它。
我想知道是否有任何方法可以“强制”任务以特定顺序执行以模拟测试用例。
例如:
- 客户端 #1 发出请求
- 服务器开始向客户端 #1 检索数据
- 客户端 #2 在服务器仍在响应客户端 #1 时发出另一个请求
- 断言>
我见过一些人使用自定义 TaskScheduler。有意义吗?
【问题讨论】:
-
为什么不简单地依次等待每个请求?
-
我看不到如何指定诸如“当第一个操作挂起时,开始另一个操作”之类的内容。
-
做了一些谷歌搜索,基本上归结为多线程,启动和睡眠以强制并发。关于这个主题有整本书。
-
在没有 await 的情况下调用 awaitable 方法将立即启动它,并在遇到 await 时继续下一次调用。您可以使用 Task.WaitAll(...) 使操作并行。
-
您要查找的是Chess,这是微软的一个研究项目。
标签: c# .net testing asynchronous concurrency