在我的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)
}
}
答案 0 :(得分:0)
我可能会做以下事情:
在每秒运行的计时器代码中,我会检查P / Invoke是否可以使用互联网连接(这比让服务抛出异常更快,看起来它适合你的原因,好)。对于某些参考,请查看here