Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 避免VSTO、Word自动计时RPC_E_调用_拒绝错误_Vb.net_Vba_Vsto - Fatal编程技术网

Vb.net 避免VSTO、Word自动计时RPC_E_调用_拒绝错误

Vb.net 避免VSTO、Word自动计时RPC_E_调用_拒绝错误,vb.net,vba,vsto,Vb.net,Vba,Vsto,我正在编写一个VSTO VB.NET应用程序,它控制Word文档,使用标准功能,例如复制、粘贴、插入文本和页面,并且没有额外的线程。我在不同的时间收到以下错误:呼叫被被叫方拒绝。(HRESULT异常:0x80010001(RPC调用被拒绝)) 这似乎是Word的时间问题,因为它几乎是随机失败的,但仅在Word调用时失败。在调试器中,我可以单击继续,代码继续 我已经看到很多关于这个的评论,相关的评论似乎是关于COM IMessageFilter接口的。但他们都忽略了一个重要的问题:我只想等待Wor

我正在编写一个VSTO VB.NET应用程序,它控制Word文档,使用标准功能,例如复制、粘贴、插入文本和页面,并且没有额外的线程。我在不同的时间收到以下错误:呼叫被被叫方拒绝。(HRESULT异常:0x80010001(RPC调用被拒绝)

这似乎是Word的时间问题,因为它几乎是随机失败的,但仅在Word调用时失败。在调试器中,我可以单击继续,代码继续

我已经看到很多关于这个的评论,相关的评论似乎是关于COM IMessageFilter接口的。但他们都忽略了一个重要的问题:我只想等待Word再次释放,然后继续。我不想用选项(例如RetryRejectedCall)提示用户。目前一个糟糕的解决方法是故意延迟,比如Threading.Thread.Sleep(500),但这很难解决问题,而且对于许多调用来说,这也是不切实际的


处理此问题的正确方法是什么?

很可能您使用的是来自辅助线程的Word对象模型。Office应用程序使用单线程单元模型。不建议使用辅助线程中的任何对象模型


此外,您可能会发现这些信息非常有用。

谢谢。我没有明确使用线程或后台工作程序。您的链接提到使用XML或暂停调用类。你有喜欢的例子吗?我从来没有像这样用过。不,我没有这方面的样品。