前天遇到一个问题,网站中应用了ws以获取天气预报信息,由于免费的东西一般不保证质量,所以常常出现服务中断的情况。而此类错误只会造成服务器超时,无法在程序中捕获,这时就想到了异步调用。
这是一段异步调用WebServices的代码,可以看出在2.0下进行异步调用比较简单。但还有一些细节问题没有搞清楚,明天再琢磨一下。
private
void
button2_Click(
object
sender, EventArgs e)
{
sd.wjl.www.passport ws = new GetWeather.sd.wjl.www.passport();
ws.PassportCheckCompleted += new GetWeather.sd.wjl.www.PassportCheckCompletedEventHandler(myevent);
ws.PassportCheckAsync( " hello " , " gf " );
}
void myevent( object sender, sd.wjl.www.PassportCheckCompletedEventArgs e)
{
if (e.Error == null )
{
label1.Text = e.Result.ToString();
}
else
{
MessageBox.Show(e.Error.Message);
}
}
{
sd.wjl.www.passport ws = new GetWeather.sd.wjl.www.passport();
ws.PassportCheckCompleted += new GetWeather.sd.wjl.www.PassportCheckCompletedEventHandler(myevent);
ws.PassportCheckAsync( " hello " , " gf " );
}
void myevent( object sender, sd.wjl.www.PassportCheckCompletedEventArgs e)
{
if (e.Error == null )
{
label1.Text = e.Result.ToString();
}
else
{
MessageBox.Show(e.Error.Message);
}
}
这是一段异步调用WebServices的代码,可以看出在2.0下进行异步调用比较简单。但还有一些细节问题没有搞清楚,明天再琢磨一下。