我在一个win应用程序上使用多线程
System.Threading.ThreadPool.QueueUserWorkItem(delegate{}, null);
问题是我的方法需要主线程(DialogeResult 对象)上的返回值,而this.Invoke()
我无法从主线程获取值。下面是方法代码:
public static DialogResult Show(IWin32Window owner, PSSettings.Settings settings, string title, string caption, MessageBoxButtons buttons)
{
return (DialogResult)((Form)owner).Invoke((Action)(() =>
{
PSMessageBox mb = new PSMessageBox();
mb._settings = settings;
mb.lblTitle.Text = title;
mb.lblCaption.Text = caption;
mb.Buttons = buttons;
return mb.ShowDialog();
mb.ShowDialog(owner);
}));
}
谁能告诉我如何使用任何类型的委托从调用方法获取返回值?