繁体   English   中英

在单元测试中产生线程

[英]spawning threads in a unit test

有很多关于如何对线程代码进行单元测试的信息,而不是在单元测试方法中生成线程以测试同步机制。

[TestMethod]
public void TestDiscountThreading() {
  Thread[] threads = new Thread[50];
  for (int i = 0; i < threads.Length; i++) {
    threads[i] = new Thread(PriceThread);
    threads[i].Start();
  }

  for (int i = 0; i < threads.Length; i++)
    threads[i].Join();
}

我想强调测试PriceThread中的代码中的同步是否正确实现,但是每次运行该方法时都会出现错误“代理进程在测试运行时已停止”。 是否有可能在单元测试中产生线程或者这里有什么问题?

我使用Visual Studio 2010与随附的单元测试框架

这不是一个完整的答案,但我建议你看看VS 2010 Test Runner错误“测试运行时代理进程已停止。” 为了想法。

你知道在代码中抛出异常的位置吗?

编辑回答:

当主线程以外的线程抛出未处理的异常时,这是结果。 这就是这种情况,即循环或线程本身没有问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM