Кто-нибудь знает messageBox в .NET, который не блокирует поток, который создал его до его закрытия?
Неавтомобильные MessageBoxes в С#
Ответ 1
По умолчанию MessageBox
, который вы используете через пространство имен System.Windows.Forms
, всегда будет Modal (т.е. Blocking). Если вы хотите иметь сообщение с сообщением Modeless, вы должны создать свой собственный WindowsForm
, который выглядит как MessageBox
.
Затем вы отобразите эту форму следующим образом:
// C#
//Display frmAbout as a modeless dialog
Form f= new Form();
f.Show();
Ответ 2
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()
с текстом и надписью. Это простой пример, вы можете добавить кнопки или значки владельца или другие аргументы, которые вы хотите.
Ответ 3
Возможно, самым простым является:
Thread t = new Thread(() => MessageBox.Show(text));
t.Start();
Ответ 4
Вы можете упростить эти другие ответы до одной строки кода
new Thread(() => System.Windows.Forms.MessageBox.Show(text).Start();