C#开发AutoCAD插件多线程问题2种解决方法

后台线程不允许操作界面,解决方案委托主线程来操作,在winform中用控件的Invoke方法。CAD插件里,可以用下面两种方法来实现:

 

方法一(推荐):

复制代码
//主线程:
System.Threading.SynchronizationContext ctx = null;
ctx = Autodesk.AutoCAD.Runtime.SynchronizationContext.Current;
if(ctx == null)
{
  ctx = new Autodesk.AutoCAD.Runtime.SynchronizationContext();
 }


//子线程:
 ctx.Post(HandlerMethod,objectData);
复制代码

 

方法二:

//主线程:
System.Windows.Forms.Control mainControl;
mainControl = new System.Windows.Forms.Control();
mainControl.CreateControl();


//子线程:
mainControl.Invoke(new Action()) =>{HandlerMethod,objectData}));

 

posted @   yzeng  阅读(261)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
点击右上角即可分享
微信分享提示