2015-07-21 61 views
0

也许这是一个新手问题,但我是一个新手。我有一个程序,它做了一个冗长的任务,而它做到了,窗体保持冻结,如果它的最小化它不能最大化等等。我该如何解决这个问题。 此外,程序以循环运行,并在每次迭代中逐行将信息打印到列表框中。问题是,列表框没有被写入,直到整个循环结束。我该如何改正这一点。当运行冗长的任务时程序冻结

+1

看看'BackgroundWorker'。 – Blorgbeard

+0

这是因为你正在UI线程上做东西。在忙于您的计算时,您无法与UI进行交互。您需要在单独的线程中执行它们(即任务或BackgroundWorker)。关于Google上的SO和资源的问题很多。 –

+1

[WinForm应用程序UI在长时间运行期间挂起]的可能重复(http://stackoverflow.com/questions/1216791/winform-application-ui-hangs-during-long-running-operation) –

回答

2

您可以使用ThreadBackgroundWorker来完成您的工作。
从UI调用冗长的代码将阻止UI线程和应用程序'冻结'。