所以我有一些代码
Task.Factory.StartNew(() => this.listener.Start()).ContinueWith(
(task) =>
{
if (task.IsCompleted)
{
this.status = WorkerStatus.Started;
this.RaiseStatusChanged();
this.LogInformationMessage("Worker Started.");
}
});
当我测试时,我正在模拟所有依赖对象(namley this.listener.Start())。问题是测试在调用 ContinueWith 之前完成执行。当我调试时,由于我单步执行代码的额外延迟,它被调用得很好。
那么我如何 - 从不同程序集中的测试代码 - 确保代码在我的测试达到其断言之前运行?
我可以只使用 Thread.Sleep ...但这似乎是一种非常老套的方法。
我想我正在寻找 Thread.Join 的任务版本。