C# 操作CAD报错【COMException (0x8001010A)消息筛选器显示应用程序正在使用中】的一种处理方式

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次。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值