我前段时间问过这个问题。我现在知道这是一个坏主意,并且应该抽象封装任务的调度和运行,以便可以从单元测试中传入同步调度程序。
我目前有使用任务并行库(TPL)的代码,我想ITaskScheduler
在我的类型中注入类似的东西来提取调度的责任,并使我能够在我的测试中传递一个同步的替代方案。
这样的事情存在吗?我正在寻找可以包装Task.Factory.StartNew
和Task.ContinueWith
. 我不认为自己动手做的工作量不大,但我敢肯定有很多小问题,如果已经有一个,我真的不想花时间去做。