连接到Web服务时显示计时器

时间:2012-10-01 15:28:10

标签: vb.net multithreading web-services timer freeze

我继承了一个经常访问Web服务的VB2010应用程序。它工作得很好,除了偶尔与Web服务的连接成为问题。现在,服务的.Timeout设置为100000或100秒。我想要做的只是更新表单上的标签,以便用户知道他必须等待超时多长时间。像“连接(10s)”或类似的东西。无论如何,我尝试了几个计时器,他们似乎都冻结了,因为似乎其他一切都在等待连接线程完成。有没有办法在服务尝试连接时更新我的​​标签?

1 个答案:

答案 0 :(得分:1)

它被锁定的原因可能是因为这是一个WinForm项目,并且您正在从UI线程调用Web服务。只要UI线程忙,屏幕就会被锁定。要解决此问题,您只需在单独的线程中调用Web服务即可。实现此目的的最简单方法是使用BackgroundWorker组件。当您在表单设计器中时,您将在组件工具框中看到它。