在一个Excel实例中处理VBAmacros并发

我正在开发一个.NET应用程序在Excel中执行一些自动化任务(运行macros,刷新连接等)。 但由于{这个问题}我只需要在Excel的一个实例中运行所有任务。

如果Excel的一个实例已经打开,我使用它,否则我创build一个新的。 问题是Excel是单线程的,所以当我的应用程序的多个实例同时运行时,我需要处理并发。 在这个地方,我只是捕获COMexception“0x800AC472”,然后重试(睡眠时间为X秒),直到运行的任务结束。 但是,这不是一个非常强大的解决scheme,会出现几个错误,并出现一些死锁问题。

我能否以一种可靠的方式处理Excel并发?

我已经在我的代码中实现了IMessageFilter,但这还不够。

谢谢