坚持在C#中初始化COM进程外对象

时间:2018-04-17 09:47:12

标签: c# com out-of-process

我需要在我的C#应用​​程序中嵌入一个不需要的COM执行。 COM执行是用C ++ / ATL编写的。 有时我的COM创建过程不会启动,所以我设法使用超时来中断它。

我的COM对象初始化过程:

using MyCOM;
//...
private MyCOM.Mylib _com;  // COM object
private void MyInitJob()
{
    _com = new MyCOM.Mylib();            
}
private bool Initial()
{
    System.Threading.Thread mythread = new System.Threading.Thread(MyInitJob);
    mythread.Start();
    if (!mythread.Join(5000))
    {
        mythread.Abort();
        return false;
    }
    else
    {
        return true;
    }
}

上述代码在达到超时时似乎无法停止MyInitJob()线程,并且当新的COM对象被卡住时Initial()将永远挂起。

我能知道为什么new需要永远,并且我可以在花费太长时间时打断它吗?

0 个答案:

没有答案