0

这可能是一个奇怪的问题,对不起,我是堆栈溢出的新手。

我在 Visual Studio(C#) 中有一个多线程应用程序,我的开发机器是 4GB 双核,每个都有 2 个线程,所以实际上是 4 核机器。

然而,该应用程序将在直接的双核机器上运行,正在发生的事情是,当我构建和安装应用程序的可执行文件时,我不断得到似乎是死锁的东西,这真的很难找到,因为在任何一台机器上调试时显然有足够的时间来阻止这种情况的发生。

我想知道在 Visual Studio 中是否有任何方法可以将应用程序限制为一定数量的内核,以模拟部署机器上将发生的情况。这样我就可以确保我正在开发的代码在安装在客户端机器上时无论开发机器都可以工作。

4

1 回答 1

1

你仍然可以在一个核心上运行 10 个线程,所以我不知道你想要实现什么......

您应该在代码中寻找以下情况:

线程 A 被阻塞等待被线程 B 锁定的资源/锁,线程 B 被阻塞等待被线程 A 锁定的资源/锁。

换句话说,寻找正在运行的线程在多个资源上锁定的场景——这就是你的起点......

于 2013-07-26T08:26:20.373 回答