我有一个使用.NET 4.0的多线程应用程序。有时候,这个COM应用程序引用了怪异并停止。如何检测COM应用程序当前是否正在运行?
我想知道如何检查此进程当前是否在提问线程中运行。
实施例:
ThreadedApp app = new ThreadedApp();
System.Threading.Thread thread = new System.Threading.Thread(x => app.Start());
thread.Start();
业务对象使出:从主应用程序
施加
class ThreadApp
{
public void Start()
{
COMobject app = new COMobject(); // <- COM interop that starts up the COM app
foreach (var item in items)
{
new ThreadProcess().Process(ref app, item);
}
}
}
class ThreadProcess
{
public void Process(ref COMobject app, SomeItem item)
{
if (app == IVE_DIED_AND_I_DONT_KNOW_WHY) // How do I check this?
{
app = new COMobject();
}
// Process stuff
}
}
主要应用可以分拆线程的N个,因此可以剥离的N个COMobject应用程序。如果你看任务管理器,你会看到为每个正在运行的线程列出的COMobject.exe。
我想摆脱try/catch块来提高性能,但不知道如何从调用线程检查COM应用程序的状态。
希望这是合理的和TIA。
你的意思是COM +? – 2010-09-10 18:30:49
是一个COM +对象/应用程序... – 2010-09-10 18:47:33