我有一个奇怪的情况。这是一段快速代码:
foreach (Microsoft.Office.Interop.Word.Pane pane in window.Panes)
{
for (var i = 1; i <= pane.Pages.Count; i++)
{
Microsoft.Office.Interop.Word.Page page = null;
bool populated = false;
while (!populated)
{
try
{
page = pane.Pages[i];
populated = true;
}
catch (COMException ex)
{
Thread.Sleep(1);
counter++;
}
}
出于某种原因,在第一次运行page = pane.Pages[i]
时会抛出异常。在Thread.Sleep(1)
之后,它会正确填充。
如果我删除while{}
循环并进行逐步调试,一切正常。如果我在没有while{}
循环的情况下运行它(F5)它会崩溃。我有两个问题。
我应该对易失性或锁定变量等功能进行一些研究吗? (虽然我不认为我可以将挥发性物质应用到任何东西上)。提前谢谢。
哦,对于那些即将发布的人,请不要使用INTEROP,感谢您的圣人建议,但我现在别无选择,所以我将使用它:)