0

正常运行我的应用程序时,任何async Task不带关键字调用的方法await都完全符合我的要求。在不同的线程中启动该方法,但继续执行(编译器甚至很高兴地警告我这一点)。这可以按预期工作并且没有问题。

当在单元测试中运行相同的代码时,这个未等待的方法现在永远阻塞,我的单元测试永远不会失败。

我猜这些async方法并不是专门为这样使用而设计的,尽管它们似乎正常工作得很好。有没有办法让它们在单元测试中正常工作,或者你会建议我用什么来代替在后台执行代码而不阻塞(BackgroundWorker?)。我喜欢 Task 方法,因为它允许我以阻塞和非阻塞方式重用该方法。我可以使用 Task.Run() 并传入一个调用该方法的 lambda,但这似乎有点难看/不可读。

4

0 回答 0