【发布时间】:2011-09-05 14:21:48
【问题描述】:
在我的 C# Windows 窗体应用程序中,我通过 Internet 从 WebServices 检索一些数据。每秒刷新一次
它作为异步操作工作并且运行良好,但是每当应用程序与 Internet 断开连接时,它就会显示异常,当它重新连接到 Internet 时,程序应该会立即自动运行。
目前,该程序需要超过一分钟才能重新开始工作,我希望在连接断开时忽略该异常。
它每秒刷新一次,这意味着有很多线程同时运行并且 当他们都完成后,接下来就是连接
我可以使用什么解决方案让我的程序在互联网连接时尽快运行?
public void loadbalance()
{
try { //Get Data from Internet }
catch { }
}
delegate void loadbalancedelegate();
public void loadBalanceAsync()
{
loadbalancedelegate worker = new loadbalancedelegate(loadbalance);
AsyncCallback LoadbalnceCallBack = new AsyncCallback(loadbalanceCompleted);
AsyncOperation async = AsyncOperationManager.CreateOperation(null);
worker.BeginInvoke(LoadbalnceCallBack,async);
}
public void loadbalanceCompleted(IAsyncResult result)
{
loadbalancedelegate worker = (loadbalancedelegate) ((AsyncResult)result).AsyncDelegate;
AsyncOperation async = (AsyncOperation)result.AsyncState;
worker.EndInvoke(result);
}
delegate void setControlsBalanceDelegate(BalanceOB ball);
void setControlsBalance(BalanceOB ball)
{
if (this.InvokeRequired)
this.Invoke(new setControlsBalanceDelegate(this.setControlsBalance), new
object[] { ball });
else
{ //Update Data on Form (Windows App)
}
}
【问题讨论】:
-
仍然找不到任何解决方案,如果我们可以在每次操作之前检查互联网连接,但效率不高
标签: c# windows winforms web-services asynchronous