在UI上继续处理时等待主线程

时间:2010-02-19 18:28:38

标签: c# winforms multithreading

使用控制台应用程序时,Console.Readline会从主线程放弃对UI的处理,并且仅在触发按下输入按钮等事件时才会继续。如何在Windows窗体应用程序中复制此功能(在这种情况下使用Window窗体作为UI)?

3 个答案:

答案 0 :(得分:2)

你不能直接这样做。

但是,您可以通过调用Invoke来完成此操作,正如我所描述的那样here

答案 1 :(得分:1)

使用form.ShowDialog()而不是form.Show()

这不会停止线程,但它会阻止用户在UI中执行其他操作,直到窗口关闭。

答案 2 :(得分:0)

现在您已经解释了您想要做的事情......

最好使用BackgroundWorker,保持GUI处于活动状态,但禁用并显示进度条+取消按钮,直到完成。