我有一个问题,我不想使用多线程应用程序,因为我正在测试一些代码,我需要它单线程。
只有在完成后才会更新文本框。我需要以某种方式随时更新它。除了第二个线程之外还有其他方法吗?
答案 0 :(得分:1)
只有在完成后才会更新文本框。我需要以某种方式随时更新它。是否还有其他方式可以期待第二个线程?
没有良好的方法可以做到这一点。问题是,如果您在UI线程上执行代码,UI线程无法处理消息泵中的消息,包括刷新TextBox的消息,直到您的工作完成。
在Windows窗体中,您可以强制应用程序通过调用Application.DoEvents()来处理这些消息,但这确实是一个坏主意。使用BackgroundWorker
或其他多线程技术将工作推送到后台线程会更好(也更安全!)。
答案 1 :(得分:0)
您可以尝试以下方法:
// in for loop
tbxMyTextBox.Text = "New text!";
tbxMyTextBox.Refresh();
我记得过去必须做类似的事情。