首页 > 软件开发 > 编程语言 >

vbnet中多线程委托案列(跨线程操作控件)

来源:互联网 2023-03-17 00:28:09 330

vbnet停供了多线程的操作,但是我们在写多线程的时候不免出现跨线程操作控件,停用线程间的控件调用的检查不是最好的,最好的解决办法是委托,下面介绍委托的最简单详细的案例。0Gr办公区 - 实用经验教程分享!

工具/原料

  • visual stdio

方法/步骤

  • 1

    新建一个工程,在界面上面加一个按钮和标签,如图0Gr办公区 - 实用经验教程分享!

    vbnet中多线程委托案列(跨线程操作控件)0Gr办公区 - 实用经验教程分享!

  • 1相关内容未经授权抓取自百度经验
  • 2

    在准备委托之前需要准备以下过程,一个是委托的sub,一个是真正操作界面的sub,说白了委托就是两重调用,A调用b,b再调用c,最终实现功能。在最上面定义一个委托的类(可以根据需要增加),你这个委托的类必须和你的操作界面的sub有一样的参数,最好写一样,不然会出现签名不一样而错 如圈圈内的东东0Gr办公区 - 实用经验教程分享!

    vbnet中多线程委托案列(跨线程操作控件)0Gr办公区 - 实用经验教程分享!

  • 3

    大家出现的问题可能是这样的,在按钮的事件里面直接建立一个线程,然后调用操作界面的代码,结果就是错错。线程间操作无效。。。看下面的解决办法0Gr办公区 - 实用经验教程分享!

    vbnet中多线程委托案列(跨线程操作控件)0Gr办公区 - 实用经验教程分享!

    vbnet中多线程委托案列(跨线程操作控件)0Gr办公区 - 实用经验教程分享!

  • 4

    通过双重调用,按钮建立一个线程并触发,这个线程指向sub weituo(),0Gr办公区 - 实用经验教程分享!

    在sub weituo ()里面调用委托me.invoke(new delegate(addressof chaozuo),"叽叽哇哇"),,这个invoke里面的不能是直接的sub,要是delegate类的,就是第一段定义的委托类,这样才行。如图0Gr办公区 - 实用经验教程分享!

    vbnet中多线程委托案列(跨线程操作控件)0Gr办公区 - 实用经验教程分享!

  • 5

    现在一点按钮就可以出现你要的效果了,这样是标准的做法。0Gr办公区 - 实用经验教程分享!

    vbnet中多线程委托案列(跨线程操作控件)0Gr办公区 - 实用经验教程分享!

  • 6

    需要注意的是,如果的操作界面的sub 是用参数的,那么你的invoke 在写了委托类之后需要在后面带上对应类型的参数。0Gr办公区 - 实用经验教程分享!

    vbnet中多线程委托案列(跨线程操作控件)0Gr办公区 - 实用经验教程分享!

  • 注意事项

    • 把委托理解成2次调用比较好理解

    以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!0Gr办公区 - 实用经验教程分享!


    标签: 编程语言

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码