Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有针对.NET的测试工具可以更容易地发现线程问题?_.net_Multithreading_Debugging_Testing_Concurrency - Fatal编程技术网

有没有针对.NET的测试工具可以更容易地发现线程问题?

有没有针对.NET的测试工具可以更容易地发现线程问题?,.net,multithreading,debugging,testing,concurrency,.net,Multithreading,Debugging,Testing,Concurrency,我想到的是,当我运行(单元、组件、集成或系统)测试时,它会向每个线程注入随机休眠,以便更容易找到竞争条件 对于.NET是否存在类似的内容 更新:我看过《国际象棋》,但我们需要一些对Visual Studio 2012的支持(尽管我们还没有使用.NET 4.5)。这里有一个有趣的例子,可以为您的查询提供一些帮助 国际象棋是由微软研究院(Microsoft Research)发明的一种新型组合 模型检查和动态分析(参见 转到www.microsoft.com/fwlink/?LinkId=11652

我想到的是,当我运行(单元、组件、集成或系统)测试时,它会向每个线程注入随机休眠,以便更容易找到竞争条件

对于.NET是否存在类似的内容

更新:我看过《国际象棋》,但我们需要一些对Visual Studio 2012的支持(尽管我们还没有使用.NET 4.5)。

这里有一个有趣的例子,可以为您的查询提供一些帮助

国际象棋是由微软研究院(Microsoft Research)发明的一种新型组合 模型检查和动态分析(参见 转到www.microsoft.com/fwlink/?LinkId=116523)。它检测并发错误 通过系统地研究线程调度和交错。它是 能够发现竞争条件、死锁、挂起、活锁和 数据损坏问题。为了帮助调试,它还提供了 完全可重复执行。与大多数模型检查一样,系统 探索提供了全面的报道。作为一种动态分析工具, CHESS在一个专门的调度器上反复运行一个常规的单元测试。 每次重复时,它都会选择不同的调度顺序。作为一个 模型检查器,它控制能够 创建特定线程交错的方法。控制状态空间 爆炸,国际象棋应用偏序减少和一个新的迭代 上下文边界


Microsoft Research有一个名为:

国际象棋是一种在并发程序中查找和复制海森堡的工具。CHESS反复运行并发测试,确保每次运行采用不同的交错。如果交织导致错误,国际象棋可以复制交织以改进调试。国际象棋可用于托管程序和本机程序

注意,通常我认为这些工具被称为“模糊化工具”(用于“模糊测试”)

无论如何,您使用的是.NET框架并不重要。任何在进程中模糊线程的工具都应该这样做

这允许您查看其他工具,这些工具不是专门为CLR环境定制的。提及,尽管它似乎未发布

你也可能对这一点感兴趣