2
我们需要使用SynchronizationContext通过发送(我们不希望通过'Post'异步)返回一个值(特别是MessageBox DialogResult)。只是不确定的语法。 我们在主窗口后面出现MessageBox问题,这被认为是由于无法轻易访问主窗体IWin32Window值而导致的......我们正在使用这个,但说实话,我对它感到不舒服。是否可以使用synchronizationcontext返回一个值.send
DialogResult dr;
SynchronizationContext synchContext;
//in main forms constructor
{
...
synchContext = AsyncOperationManager.SynchronizationContext;
}
void workerThread(object obj, DoWorkEventArgs args)
{
// SynchronizationContext passed into worker thread via args
sc.Send(delegate {dr = MessageBoxEx.Show("Yes or no?", "Continue?", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);},null);
}