我有一个WPF应用程序,它在旧的ActiveX DLL文件中使用一个类。我确保使用DLL的代码部分在单独的线程中运行,我使用了new Thread()
,但是当我运行该应用程序时,我的应用程序仅使用Windows的一个逻辑处理器。
由于我需要使用ActiveX控件,因此必须创建一个System.Windows.Forms.Form
类。
boardThread = new Thread(() =>
{
var form = new HostForm(...);
form.GetData += (s, e) =>
{
OnDataRecieved(e);
};
form.ShowDialog();
});
boardThread.Priority = ThreadPriority.Highest;
boardThread.IsBackground = true;
boardThread.SetApartmentState(ApartmentState.STA);
boardThread.Start();
我没有在我的代码中设置ProcessorAffinity
,所以我假设Windows会将任何可用的处理器分配给应用程序中的线程。
该应用程序正在处理从电路板读取的一些实时数据,但无法跟上输入的速度。我以为如果使用所有可用的CPU功能,它就可以及时处理数据。
如果任何人有类似的经验或知道为什么应用程序仅使用逻辑CPU之一, 我会很感激的。 谢谢