单击按钮(C#)时应用程序窗口冻结

时间:2012-08-09 02:37:47

标签: winforms visual-studio-2010 freeze

我正在开发一个Windows应用程序:

  • 连接到FTP并发送/接收文件
  • 通过SSH连接服务器并发送命令
  • 创建Excel报告
  • 和其他一些东西

当用户单击按钮时,所有这些任务都会启动。问题是单击按钮后:

  • 光标变成手形图标
  • 窗口冻结,用户无法做任何事情(甚至移动它)
  • 即使是“Please Wait”动画也无法播放,并且几乎没有显示处理日志

enter image description here

我该怎么办?

1 个答案:

答案 0 :(得分:3)

您需要在后台线程上完成工作。开始使用后台线程的最简单方法是background worker

当您在后台线程上工作时,如果要更新GUI组件,则需要调用主线程。后台工作程序使用Report Progress方法可以执行此操作。

阅读线程的基础知识,并试一试。如果您遇到问题,请返回并发布带有特定代码示例的新问题。