C#.Net应用程序仅在一个逻辑处理器上运行

时间:2020-03-26 18:13:48

标签: c# wpf performance multiprocessing activex

我有一个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会将任何可用的处理器分配给应用程序中的线程。

enter image description here

该应用程序正在处理从电路板读取的一些实时数据,但无法跟上输入的速度。我以为如果使用所有可用的CPU功能,它就可以及时处理数据。

如果任何人有类似的经验或知道为什么应用程序仅使用逻辑CPU之一, 我会很感激的。 谢谢

0 个答案:

没有答案