所以,你开线程,传递一个公用对象,线程在开线程,而且里面还依赖一大堆公用对象 所以最终就是碰运气,期盼人家没改 新对象 xx=new 新对象 新对象.xxxxxx=你想传达的东西 xx.方法1=>{这个对象的这个方法在来,此时每次都是new的新对象,他跟别人没关系,他不依赖外面}
if (alarmFlag) { break; } 你這個只是退出循環罢了,根本没有停止线程的啊。 你应该这样 Thread tMain;全局變量 bool loadedFlag=true;全局變量 再次點擊按鈕事件 if (loadedFlag) { tMain = null; } tMain = new Thread(new ParameterizedThreadStart(RunForPrint)); tMain.IsBackground = true; tMain.Start(cm); public void RunForPrint() { while (!loadedFlag) { if (!connectMLCb.Checked) { loadedFlag=true; } //等等 //thred = null; } }
if(!isRun ) { Thread tMain = new Thread(new ParameterizedThreadStart(RunForPrint)); tMain.IsBackground = true; tMain.Start(cm); } 看了一下 你线程内部是有标志位 但是没看见你用到这个isRun 在启动线程的时候判断一下 为false的时候再启动线程
110,535
社区成员
642,577
社区内容
加载中
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧