异步调用webservice,上传和下载数据.
调用webservice
private void btnDataSynchronize_Click(object sender, EventArgs e)
{
suisuichao.Service service = new suisuichao.Service();
service.Timeout = 3600000;
service.BeginDownLoadAllSelect(strServerUsername, strServerPassword, strSynchronizeTime, new AsyncCallback(MyCallback), service);
}
回调方法
public void MyCallback(IAsyncResult iar)
{
try
{
suisuichao.Service service = (suisuichao.Service)iar.AsyncState;
ds = service.EndDownLoadAllSelect(iar);
}
catch
{
throw new Exception("不能連接到服務器,請檢查您的網絡是否暢通.");
}
//分析ds中的数据,处理数据,更新UI
//需要注意的是,此时需要使用
/* if (this.InvokeRequired)
this.Invoke(new SetStatus(SetProcessStatus));
if (ds.Tables[0].TableName.ToUpper() == "ERROR")
{
this.Invoke(new SetStatus(SetErrorStatusAgain));
return;
}*/类似代码来调用页面上的UI控件,或者更新它的状态
}