0

那么我有这个代码: http: //pastebin.com/ECrKGp5y

当我单击调用此函数的按钮时,它必须显示一个标签,如您在代码中看到的那样。但在函数未完成之前,标签将保持隐藏状态。

该功能必须下载一些文件..所以这个功能持续相当......

4

2 回答 2

1

当您在 Windows 窗体中调用方法时,它会在与窗体本身相同的线程中执行。因此,表单“冻结”直到方法完成。我们不认为该方法只需要几毫秒即可运行,但是如果您必须在那里下载一些东西,我建议您使用线程。

响应式 UI 的一个好方法是将与 UI 在同一线程中的代码保持在最低限度。在您的情况下,您可能希望使用BackgroundWorker运行大部分逻辑,以便您的 UI 不会被阻塞。然后,您可以在下载之前或之后更新标签的文本,而无需等待下载完成。

你可以在谷歌上搜索一些关于如何使用该类的教程。我建议一个: http: //www.dotnetperls.com/backgroundworker

祝你好运,编码愉快。

于 2013-07-06T17:00:20.300 回答
0

如果你使用BackGroundWorker 会更好.. 但如果你还在你的代码中,它主要是用

labelestado.Visible = True
Application.DoEvents()
于 2013-07-06T22:33:49.803 回答