我正在尝试用线程创建一个简单的时钟程序。在Form 1中,我想创建一个新线程,该线程位于ThreadProc()中,花费一些时间,然后发送回Form 1的send()方法,该方法将替换label中的文本。
第一个
它最终进入Form 1()-〉threadP()-〉Form 1()的无限循环......但没有
Form1 form1 = new Form1();
我无法调用send()in
Thread t = new Thread(() => form1.send(time));
threadP()必须在它们自己的类中,send()必须在Form 1类中。
1条答案
按热度按时间knsnq2tg1#
将对窗体的引用传递给线程。然后可以从该线程访问它。
注意,有更好的设计来重用线程,比如传递一个接口而不是具体的Form1类。
当窗体和后台线程紧密绑定在一起时,通常使用
BackgroundWorker
而不是线程。