public override void DoCommand(object sender, EventArgs args) { var dlg = new DiagnosticsForm("Gathering data..."); ThreadPool.QueueUserWorkItem(x => { var data = GetData(); try { dlg.BeginInvoke((Action)(() => { dlg.TextBox.Text = data; dlg.TextBox.SelectAll(); })); } catch (InvalidOperationException) { // Window has been closed already } }); dlg.ShowDialog(); }
public override void DoCommand(object sender, EventArgs args) { var dlg = new DiagnosticsForm("Gathering data..."); ThreadPool.QueueUserWorkItem(x => { var data = GetData(); try { dlg.BeginInvoke((Action)(() => { dlg.TextBox.Text = data; dlg.TextBox.SelectAll(); })); } catch (InvalidOperationException) { // Window has been closed already } }); dlg.ShowDialog(); }