任何人都知道.NET中的messageBox不会阻止创建它的线程,直到它关闭?
您通过MessageBox
命名空间使用的默认System.Windows.Forms
将始终为Modal(即阻塞)。如果你想要一个无模式消息框,你应该创建自己的WindowsForm
,看起来像一个MessageBox
。
然后,您将显示以下表格:
// C#
//Display frmAbout as a modeless dialog
Form f= new Form();
f.Show();
private void ShowMessageBox(string text, string caption)
{
Thread t = new Thread(() => MyMessageBox(text, caption));
t.Start();
}
private void MyMessageBox(object text, object caption)
{
MessageBox.Show((string)text, (string)caption);
}
你可以用你的文字和标题来调用ShowMessageBox()
。这只是一个简单的示例,您可以添加按钮或图标所有者或您想要的其他参数。
可能最简单的是:
Thread t = new Thread(() => MessageBox.Show(text));
t.Start();
您可以将这些其他答案简化为一行代码
new Thread(() => System.Windows.Forms.MessageBox.Show(text)).Start();