问题描述
小弟写了一个winform,放了一个panel,panel里面add了另外一个winform窗体,winform里面实例化了一个线程,当我要把panel里切换到另一个winform窗体时,我首先用controls.clear,将该panel清空~再add另一个窗体~但是那个线程依然在运行~~请问我该怎么去关闭这一个线程~控制panel切换的是第一个主体winform…
解决方案
解决方案二:
共享一个bool变量主线程设置它为true,工作线程轮询,发现它是true就退出。
解决方案三:
大神~请问怎么轮询~可以详细点不?
解决方案四:
工作线程函数boolbFlag=true;///线程函数privatevoidthreadFunc(){while(bFlag){Thread.Sleep(100);//dosomething}}
threadstart后,bFlag为True,循环执行线程内部逻辑。如果需要退出,则将bFlga置为False。线程正常退出。不知道LZ的工作线程怎么设计的,如果是执行完就结束,那没有办法,等着结束或者强制退Abort
解决方案五:
如果线程内部有循环,那么就弄个全局变量,控制循环是否结束。要么就强制Abort
解决方案六:
把窗体的thread设置成public,在controls.clear之前就把窗体的线程Abort掉
时间: 2025-01-30 02:54:09