回 帖 发 新 帖 刷新版面

主题:C#多线程里子线呈调用主线程里的控件

我要实现的功能:
一开始启动一个form1这应该是主线程吧,form1里有一个picturebox和一个richtextbox控件,在显示form的同时我创建了一个新的线程t1,t1里主要完成的是两个功能:
第一 :通过一个form2显示一些信息,信息里面包含位置坐标信息,在显示这些信息的同时要求能将位置坐标通过form1里的picturebox画出来,
第二:当确认了第一个功能form2显示的信息后,继续线程并循环产生数据,每产生一个数据时要求能实时的显示到主线程form1的richtextbox里,当循环结束后能自动安全结束该线程, 
请问我该怎么做才能实现以上要求的功能呢:
谢谢

回复列表 (共2个回复)

沙发

既然由form1创建线程t1,并且假设form2只是显示功能而已,那么把所有核心代码都放到form1里面好了。
开放form2的访问规则为internal,内部控件也是如此,那么t1线程就可以访问自己创建的form2,进行信息确认,然后反馈到自己所在的form1的picturebox等上面(由于线程不同,建议使用BeginInvoke或者Invoke回调)。

基本思路就是如此,你可以再参考FAQ中的窗体间访问方法以及线程间切换的相关内容

板凳


这个问题我以前也接触过,开始的时候我也找不到问题的原因,后来我进了一个技术交流群,这个群里的人挺多的,在里面可以沟通技术,你可以进去看一下.群号是:六#二#八#七#八#零#四#三。另外,这个群里可以接项目。

我来回复

您尚未登录,请登录后再回复。点此登录或注册