我有这段代码:http://pastebin.com/ECrKGp5y
当我点击一个调用此功能的按钮时,它必须显示一个标签,你可以在代码中看到..但是在功能没有完成之前,标签仍然是隐藏的。
该功能必须下载一些文件..所以这个功能持续......
答案 0 :(得分:1)
当您在Windows窗体中调用方法时,它将在与窗体本身相同的线程中执行。因此,形式“冻结”直到方法结束。我们没有意识到当该方法只需几毫秒的运行时,但如果你必须在那里下载一些东西,我建议你使用线程。
响应式UI的一个好方法是将与UI相同的线程中的代码保持在最低限度。在您的情况下,您可能希望使用BackgroundWorker运行大部分逻辑,以便不阻止您的UI。然后,您可以在下载之前或之后更新标签的文本,而无需等待下载完成。
您可以谷歌获取有关如何使用该课程的一些教程。我建议一个:http://www.dotnetperls.com/backgroundworker
祝你好运,编码愉快。
答案 1 :(得分:0)
如果你使用 BackGroundWorker ,那就更好..但是如果你还在你的代码中,那么它主要用
完成labelestado.Visible = True
Application.DoEvents()