我有一个用C#编写的Windows应用程序。当应用程序启动时,它创建新线程以在主线程空闲时运行一些后台进程。 后台线程将显示一个对话框。 我发现如果单击主UI,对话框将被隐藏。
问题是如何通过主UI使对话框成为自己的对话框?我知道通过将TopMost属性设置为true会使对话框保持在屏幕顶部,但我不想要这个。
请帮忙。
答案 0 :(得分:1)
您应该在主线程上触发所有UI更改。让后台进程将结果返回到主UI线程,然后从那里触发对话框。 async / await非常适用于此类任务。
这是一个异步执行某些内容然后使用返回的结果设置UI元素的简单示例... Accessing UI controls in Task.Run with async/await on WinForms