Как запустить приложение на определенном процессоре
От: Американец  
Дата: 25.03.09 17:53
Оценка: 6 (1)
Приложение на C# создает COM объект посредством interop и вызывает его функции.
Приложение предоставляющее COM интерфейс стороннее и в нем ничего не изменить.
На машине с одним процессором все работает как надо, но в двухъядерной
системе переодически возникает проблема при обращении к COM объекту и вылетает исключение:

System.Runtime.InteropServices.COMException' in ...
ErrorCode: HRESULT 0x8000FFFF
Message: "Ошибка входа в критическую секцию из-за потока 2900, функция "TListEx.Lock"

а иногда поток и вовсе зависает в неуправляемом коде. Никакие манипуляции с потоковыми
аппартаментами не помогают.
Единственная безумная идея это заставить оба приложения полностью выполняться на одном
и том же процессоре (включая все рабочие потоки приложений), но что для этого сделать
непридумаю никак, подскажите какие варианты есть или где читать ?
c# com processor thread
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.