3

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

[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 与随附的单元测试框架一起使用

4

1 回答 1

1

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

你知道异常是在代码中的什么地方抛出的吗?

编辑答案:

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

于 2013-08-26T13:29:06.700 回答