У меня есть приложение 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](https://i.stack.imgur.com/cPpcr.jpg)
Приложение обрабатывает некоторые данные в реальном времени, считанные с платы, но это не может не отставать от входа. Я подумал, что если он использует всю доступную мощность ЦП, он может обрабатывать данные вовремя.
Если кто-то имеет подобный опыт или знает, почему приложение использует только один из логических ЦП, я был бы признателен за помощь. Спасибо