任何人都知道.NET中的messageBox不会阻止创建它的线程直到它关闭?
答案 0 :(得分:20)
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()
。这只是一个简单的示例,您可以添加按钮或图标所有者或您想要的其他参数。
答案 1 :(得分:11)
您通过MessageBox
命名空间使用的默认System.Windows.Forms
将始终为模态(即阻止)。如果您想要一个无模式消息框,您应该创建一个看起来像WindowsForm
的{{1}}。
然后,您将按如下方式显示此表格:
MessageBox
答案 2 :(得分:11)
最简单的可能是:
Thread t = new Thread(() => MessageBox.Show(text));
t.Start();
答案 3 :(得分:10)
您可以将这些其他答案简化为一行代码
new Thread(() => System.Windows.Forms.MessageBox.Show(text)).Start();