2013-10-23 36 views
2

我有一个C#窗体应用程序。它动态检测网络。意味着只要互联网可用,它就会连接,当它不可用时它将开始在离线模式下工作。问题是应用程序检测到互联网并连接到互联网时,我无法通过鼠标在屏幕上移动应用程序。连接到网络(约20秒)后,它将会移动。即使连接到互联网,我也希望移动该表单。应用程序连接到Internet时窗体挂起

+3

您正在屏蔽UI线程。创建另一个线程来执行任何长时间运行的操作,以保持UI的响应。 – Servy

+0

显示沙时钟(鼠标光标中的处理符号)连接到Internet时。如果你想让连接把表单对象放在单独的线程中 – Aravind

回答

1

您需要检测专用线程上的网络连接。检查主(UI)线程会阻止它,直到检查完成,这就是UI锁定的原因。

请参阅此Visual Studio Magazine article中的“非响应式用户界面”,但有关如何执行此操作的在线资源比比皆是。

0

一般来说,我认为你需要使用线程。查找background worker on MSDN。您的应用在主线程中运行,如果您启动另一个可能需要很长时间的进程,则主线程将等待挂起。