C# 操作CAD报错【COMException (0x8001010A)消息筛选器显示应用程序正在使用中】
使用了dynamic关键字依然无法解决,程序运行了5次可能出现3次此错误。
网上搜索了很多方法都没有用,于是使用了do…while循环解决此问题,代码如下。
// 写代码的时候使用AcadDocument,最后再改成dynamic进行编译
string _myTestPath = @"D:\test\testFile.dwg";
dynamic doc = acadApp.Documents.Open(_myTestPath);
// 你可以把任何需要进行的绘图操作使用于此,建议只包含一次的绘图操作
// 多次绘图操作的话,每个绘图操作使用一次do...while循环
bool _key1 = false;
int _count = 0;
do
{
try
{
double[] startPoint = { 0, 0, 0 };
doc.ModelSpace.AddText("it's my test text", startPoint, 10);
_key1 = true; // 只要成功一次,就跳出do循环
}
catch (COMException)
{
_count1 += 1;
Console.WriteLine($"COMException异常:第{_count}次...");
Thread.Sleep(1); // 线程暂停1ms
}
} while (_key1 == false);
// 到这里就算成功了
实际测试下来,引发异常的次数是0次至3次。