我在这里的情况相当奇怪。我创建了一个自定义 MessageBox 表单(而不是内置的MessageBox.Show
)。下面的代码是我在需要时用来调用表单的代码:
internal DialogResult ShowCustomMessageBox(string message, string caption, Icon icon = null)
{
var result = DialogResult.None;
MainForm.Get.UISynchContext.Send(s =>
{
var messageBox = new DialogBox
{
Icon = icon,
Text = caption,
rtbInDialogBox = { Text = message }
};
result = messageBox.ShowDialog();
messageBox.Dispose();
}, null);
return result;
}
当我运行它时,我收到一条错误消息,messageBox.ShowDialog();
表明 messageBox 实例已被释放。
当我将代码发布到同步上下文时,我很确定 MainForm 会运行代码本身(而不是其他线程),但我不确定它为什么告诉我 messageBox 已经被释放。
有任何想法吗?