首页 > 编程语言 >C#开发AutoCAD插件多线程问题2种解决方法

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

时间:2024-04-12 10:56:29浏览次数:28  
标签:插件 AutoCAD mainControl SynchronizationContext ctx System 多线程

后台线程不允许操作界面,解决方案委托主线程来操作,在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}));

 

标签:插件,AutoCAD,mainControl,SynchronizationContext,ctx,System,多线程
From: https://www.cnblogs.com/yzeng/p/18051661

相关文章

  • 50 Vue3常用扩展插件
    在setup的script标签中去指定组件名字1.安装npmivite-plugin-vue-setup-extend-D2.配置vue.config.tsimport{defineConfig}from'vite'importVueSetupExtendfrom'vite-plugin-vue-setup-extend'exportdefaultdefineConfig({plugins:[VueSe......
  • 记录一次因为环境变量引起的插件无法使用
    事件起因:某同事在搬家之后,Maya2019.2的插件无法正常加载,且阿诺德(Mtoa)渲染插件也无法正常加载(这是另一个问题。详情见Maya2019.2Mtoa无法正常加载,并报错)。 解决思路:首先插件无法加载的问题,由于我们单位使用的maya插件使用的是网络路径,并且是使用系统环境变量(即不管是针对哪......
  • vue插件 vue-virtual-scroll-list解决数据量太大问题
    项目中数据量有时候过于庞大,使用elementui的Select组件时,会导致下拉框加载速度慢卡顿甚至于卡死,为解决这个问题,使用vue-virtual-scroll-list插件,模拟虚拟滚动。vue-virtual-scroll-list是vue的一个虚拟滚动组件,通过不渲染可视区域以外的内容,显示虚拟的滚动条来提升页面性能首先......
  • docker 中使用 php--apache并加入 mysql 插件
    官方镜像说明页:可根据自己需要,选择对应版本的php进行下载。这里使用php7.4+apache服务的镜像为例:dockerpullphp:7.4.33-apache运行容器:dockerrun--namejiuta-php-apache-7.4-d-p9000:80\-v/mnt/datadisks/docker-root/jiuta/www:/var/www/html\--log-o......
  • 多线程-多个子线程执行结果插入List集合
    业务场景:将多个子线程的执行结果存入List,但是总会出现List集合的长度小于子线程的执行数的情况1、错误示例(多个线程同时操作同一个List对象,List是线程不安全)packageunitTest;importorg.assertj.core.util.Lists;importjava.util.List;importjava.util.concurrent.Coun......
  • VScode里用MPE插件导出带大纲的HTML和PDF文件
    前置条件:1.在VScode里安装好MarkdownPreviewEnhanced插件2.导出PDF文件,需要用到Prince软件,要先在电脑上安装Prince软件,可以去它的官网下载                Prince-DownloadPrince(princexml.com)windows系统的,选这个就可以了,解压后放在自己想放的......
  • vue 插件 | 自动滚动 vueSeamlessScroll
    1.下载安装npminstallvue-seamless-scroll--save2.引入importvueSeamlessScrollfrom"vue-seamless-scroll";3.注册使用组件<vueSeamlessScroll:class-option='defaultOption':data="activeData"style="height:194px;">......
  • 使用Proguard插件对代码混淆
    背景:最近项目中需要将jar包提供给第三方去用,担心代码被反编译偷取源码,所以需要对现在代码进行混淆。原理:使用Proguard对代码进行混淆。其实Proguard混淆代码的原理很简单,java代码在编译后会生成许多.class文件,这些.class文件可以被反编译(常用gui反编译等),编译后原本的代码就......
  • Kibana-4.6.6 marvel插件license过期重新注册
    1、注册新的license,https://register.elastic.co/marvel_register,注册完毕邮箱收取下载地址,将新的license下载到本地2、到license所在目录执行curl命令:curl-XPUT'http://<host>:<port>/_license'[email protected]将host和port替换为Elasticsearch的IP和端口执行curl命令报......
  • SQL事前巡检插件
    背景:事故频发•每年都会看到SQL问题引发的线上问题不易发觉•对于SQL性能问题测试在预发环境不易发现•saas系统隔离字段在SQL条件中遗漏,造成越权风险•业务初期SQL没问题,业务增长容易出现事故•DBS慢SQL不支持实时报警,无法及时发现•靠大家review代码总会出现遗漏事......