Я использую многопоточность на применении выигрыша сМногопоточность, возвращаемое значение на Control.Invoke()
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);
}));
}
Может кто-нибудь показать мне, как получить возвращаемое значение из метода Invoke с делегатом любого рода?
Обычно 'QueueUserWorkItem' не должен открывать модальную форму. Вы должны использовать ThreadPool для работы с небольшим фоном, и уверены ли вы, что вы можете использовать 'IWin32Window' для' Form'? –