问题描述
需求是窗体from1开线程线程中循环打开窗体from2from3中也有线程确实不会写写成这样帮忙看看有两个错误1.正在终止线程2.由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值。voidlinkDevice(){while(true){Thread.Sleep(1000);if(SpeechHelper.Read("S.txt").ToUpper()=="SENDOK"){for(inti=0;i<bdt.Rows.Count;i++){Thread.Sleep(100);DataTabledt=newDataTable();dt=bdt.Clone();DataRowDR=bdt.NewRow();DR=bdt.Rows[i];dt.Rows.Add(DR.ItemArray);try{Form2F4=newForm4(cs=bdt.Rows[i]["CS"].ToString());F4.ShowDialog();Form3f=newForm3(dt,i);f.ShowDialog();this.DialogResult=f.DialogResult;if(f.DialogResult==System.Windows.Forms.DialogResult.Cancel){break;}}}catch(Exceptionex){}}this.Invoke(newAction(()=>{this.Close();}));}elseif(SpeechHelper.Read("S.txt").ToUpper()=="SENDNO"){this.DialogResult=System.Windows.Forms.DialogResult.Cancel;this.Invoke(newAction(()=>{this.Close();}));}}}
解决方案
解决方案二:
在线程中进行UI操作,需要使用委托看代码是有一部分用了委托,为何是一部分用,其他没有用呢?
解决方案三:
尽量避免在线程中开窗体既然窗体中有线程,直接主窗体打开子窗体就好了啊开那么多线程干什么
解决方案四:
你是不是调了thread.Abort()了?