Windows窗体运行带有对话框(窗体)的新线程并且主线程拥有对话框

问题描述:

我有用C#编写的Windows应用程序。当应用程序启动时,它会创建新线程以在主线程处于空闲状态时运行某个后台进程。 后台线程将显示一个对话框。 我发现如果我点击主UI,对话框将被隐藏。Windows窗体运行带有对话框(窗体)的新线程并且主线程拥有对话框

问题是我怎样才能使对话框是由自己的主UI?我知道通过将TopMost属性设置为true将使对话框保持在屏幕上方,但我不想这样做。

请帮忙。

+1

什么是实例,并显示在后台线程的对话框的代码? – kennyzx 2014-10-30 03:20:59

您应该触发主线程上的所有UI更改。让后台进程将结果返回到主UI线程,然后从那里触发对话框。异步/等待对于此类任务非常有效。

这里是异步执行的东西,然后与返回的结果设定UI元素的一个简单的例子... Accessing UI controls in Task.Run with async/await on WinForms