当前位置: 首页 > 编程语言 > C#

MessageBox允许进程自动继续Share

时间:2023-04-11 11:49:36 C#

MessageBox允许进程自动继续我可以?else{//调试或消息框失败的行MessageBox.Show("Cols:"+_columns.Length.ToString()+"Line:"+lines[i]);首先,正确的解决方案是使用普通窗口(或窗体,如果您使用winforms)来替换消息框。这很容易。示例(WPF)Close...classMyWindow:Window{publicMyWindow(stringmessage){this.DataContext=message;}voidSelfClose(objectsender,RoutedEventArgse){this.Close();}}...newMyWindow("Cols:"+_columns.Length.ToString()+"Line:"+lines[i]).Show();如果你想要一个快速而肮脏的解决方案,你可以从一次性线程Box中调用消息:Threadt=newThread(()=>MessageBox("lalalalala"));t.SetApartmentState(ApartmentState.STA);t.开始();(不确定是否真的需要ApartmentState.STA)//如果您还没有使用System.Threading.Tasks,则需要添加它;//那么这就是你的代码将在主线程上异步运行的地方;Task.Factory.StartNew(()=>{MessageBox.Show("这是一条消息");});使用这个this.Dispatcher.BeginInvoke(newAction(()=>{MessageBox.Show(this,"text");}));希望它能帮助你。使用系统线程;staticvoidMessageThread(){MessageBox.Show("Cols:"+_columns.Length.ToString()+"Line:"+lines[i]);}staticvoidMyProgram(){Threadt=newThread(newThreadStart(MessageThread));t.开始();这会在它自己的线程中启动MessageThread函数,因此我调用MyProgram的其余代码可以继续。希望这可以帮助。你想要的是一个无模式的形式。以下是一些供您使用的信息和示例。您需要使用多线程来完成此操作,其中一个线程(主线程)将执行处理,而其他线程将用于显示消息框。您也可以考虑使用委托。以下是我刚刚完成的片段:-以上是C#学习教程:MessageBox让进程自动继续分享所有内容。如果对大家有用,需要详细了解C#学习教程,希望大家多多关注——namespaceYourApp{publicpartialclassfrmMain:Form{//为summarybox声明delegate,让mainthread免于可怕的OKclick私人委托voidShowSummaryDelegate();ShowSummaryDelegate显示摘要;//////您的消息框,根据需要进行编辑///privatevoidfxnShowSummary(){stringmsg;msg="测试序列完成";msg+="执行的测试数:"+lblTestCount.Text+Environment.NewLine;msg+="误报数:"+lblFalsePve.Text+Environment.NewLine;msg+="漏报数:"+lblFalseNve.Text+Environment.NewLine;MessageBox.Show(消息);}//////此回调用于清除摘要委托的调用。//privatevoidfxnShowSummaryCallback(IAsyncResultar){try{ShowSummary.EndInvoke(ar);}catch{}}//////你想要调用消息bo的代码x///privatevoidtmrAction_Tick(objectsender,EventArgse){ShowSummary=newShowSummaryDelegate(fxnShowSummary);AsyncCallbackSummaryCallback=newAsyncCallback(fxnShowSummaryCallback);类}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如有转载请注明出处: