强制应用程序仅运行单核?
作者:互联网
我有一些第三方DLL的奇怪问题.每当我尝试使用某种方法时,第三方提供程序都会引用一些具有内存异常的开放源DLL.当应用程序在单核计算机上运行时,不会出现此问题,但是显然我们不能假设用户会拥有该问题.
有没有一种方法可以强制一个应用程序,或者甚至更好的一个被引用的DLL在单个内核上运行?还有其他方法可以解决此问题吗?让第三方重建OS dll显然是不可能的(当前对我来说有点痛了:)),所以我不得不自己处理它,或者只是忘记提供此功能.
顺便说一句,从OS DLL引发的错误消息是“尝试访问损坏或受保护的内存”.
解决方法:
您可以通过使用Process.ProcessorAffinity
来实现.请注意,这将使您的整个应用程序以单核运行.
编辑:您的问题可能是DLL预期具有单处理器亲和力的结果,但也可能是线程问题(例如竞态条件),当您只有一个内核时就不太可能发生此问题.如果最后一个是正确的,那么您除了手指交叉并祈祷(并且可以考虑放弃该功能以保持应用程序稳定)之外,您什么也不能做.
标签:multithreading,net-3-5,c 来源: https://codeday.me/bug/20191024/1917764.html