У меня есть следующий код:
public void Test(IMyInterface iInterface)
{
iInterface.CallMethod ( );
}
Что отлично работает. Однако, если я изменю код для потоковой передачи:
private IMyInterface myInterface;
public void Test(IMyInterface iInterface)
{
myInterface = iInterface;
new Thread ( new ThreadStart ( CallInterfaceMethod) ).Start ( );
}
public void CallInterfaceMethod ( )
{
myInterface.CallMethod ( )
}
Когда я использую поток, я получаю исключение:
Невозможно передать COM-объект типа "System.__ ComObject" в тип интерфейса "IMyInterface". Эта операция завершилась неудачно, потому что вызов QueryInterface на COM-компоненте для интерфейса с IID '{GUID}' завершился неудачно из-за следующей ошибки: такой интерфейс не поддерживается
Но интерфейс должен поддерживаться просто отлично? У кого-нибудь есть мысли о том, что здесь происходит?