C# 应用时出现间歇性错误0x800A03EC。可见为假

C# 应用时出现间歇性错误0x800A03EC。可见为假,c#,excel,com,excel-interop,C#,Excel,Com,Excel Interop,我在C#中使用Excel interop,遇到了一个我无法理解的奇怪错误。我已经读了很多关于这个错误的文章,你可能会注意到这篇文章的标题和我的非常相似。这个问题不一样。我犯的错误是断断续续的,但是有一些方法可以让我发疯。我就是搞不懂那是什么方法 当我尝试执行这样一行时,我得到了错误0x800A03EC,这在我将副本保存到网络后立即发生: someExcelWorksheet.getRange("MyNamedRange").Value = "new value"; 我知道这是一个令人讨厌的错误

我在C#中使用Excel interop,遇到了一个我无法理解的奇怪错误。我已经读了很多关于这个错误的文章,你可能会注意到这篇文章的标题和我的非常相似。这个问题不一样。我犯的错误是断断续续的,但是有一些方法可以让我发疯。我就是搞不懂那是什么方法

当我尝试执行这样一行时,我得到了错误
0x800A03EC
,这在我将副本保存到网络后立即发生:

someExcelWorksheet.getRange("MyNamedRange").Value = "new value";
我知道这是一个令人讨厌的错误,其原因很难缩小。这是汉斯·帕桑对第一段中相关问题的评论

当Excel因为忙于完成其他工作而生气时,就会发生这种情况。当你有一台速度更快的机器,让你更努力地灌篮时,可能会发生这种情况。很难处理

这里有一个有趣的部分:只有当Excel应用程序不可见时才会发生,当我在Wi-Fi上时才会发生。以下是四个需要澄清的用例:

  • 100%成功:Ethernet(~90向下,~40向上)+
    app.Visible=true
  • 100%成功:Ethernet(~90向下,~40向上)+
    app.Visible=false
  • 100%成功:Wi-Fi(~15向下,~5向上)+
    app.Visible=true
  • 30%成功率:Wi-Fi(~15向下,~5向上)+
    app.Visible=false
  • 考虑到我已经有办法让应用程序工作,我不一定要寻找解决
    0x800A03EC
    错误的方法。我想我理解为什么Wi-Fi和以太网之间存在不一致,即使是在同一个网络上。我认为这只是一个速度问题。我在应用程序中访问的Excel文件存储在网络上,因此访问它们需要一些时间。在这段时间里,我认为Excel正在失控。令人恼火,但至少有一些可能的解释

    相反,我不明白为什么visibility属性会影响程序是否正确执行。这是一个面向用户的内部应用程序,运行时间在10到20分钟之间,如果它可以在后台运行,那将是一个理想的选择,因为数百个Excel电子表格在打开和关闭时会闪烁,这使得用户的机器在应用程序运行期间几乎不可用。但是,它不会经常运行,因此如果应用程序需要运行,这是一个可以接受的缺点

    我的问题是:为什么让应用程序可见会阻止0x800A03EC?