/// <summary>
/// 根据学生姓名得到该学生的成绩
/// </summary>
/// <param name="strName">学生姓名</param>
/// <param name="intDelaySecond">延迟的秒数</param>
/// <returns>成绩</returns>
[WebMethod]
public int GetGrade(string strName, int intDelaySecond)
{
if (intDelaySecond > )
{
Thread.Sleep(intDelaySecond * );
}
int intGrade = ;
switch (strName)
{
case "张三":
intGrade = ;
break;
case "李四":
intGrade = ;
break;
case "王五":
intGrade = ;
break;
case "贾六":
intGrade = ;
break;
}
return intGrade;
}
AsynCall.AsynCall service = new AsynCall.AsynCall();
Console.WriteLine("请输入要查询成绩的学生的姓名:");
string strName = Console.ReadLine();
Console.WriteLine("请输入要延迟的秒数:");
int intSecond = int.Parse(Console.ReadLine());
Console.WriteLine("同步调用开始");
Console.WriteLine("同步调用结果为:" + service.GetGrade(strName, intSecond));
Console.WriteLine("同步调用结束");
Console.ReadLine();
Console.WriteLine("异步调用开始");
//'+='表示事件的预定,'new AsynCall.GetGradeCompletedEventHandler(service_Completed)'表示利用编写的事件处理程序生成一个委托实例,'service.GetGradeCompleted'表示添加什么到产生事件对象的事件列表当中去,合起来解释就是把这个委托实例添加到产生事件对象的事件列表当中去,这个过程叫做订阅事件,委托就是代理,我们可以这样理解,委托就是把一个事件处理函数和一个事件关联起来
service.GetGradeCompleted += new AsynCall.GetGradeCompletedEventHandler(service_Completed);
//开始异步调用
service.GetGradeAsync(strName, intSecond);
Console.WriteLine("当前进程没有被阻塞");
for (int i = ; i < ; i++)
{
Console.WriteLine(i);
}
Console.ReadLine();
private static void service_Completed(object sender, AsynCall.GetGradeCompletedEventArgs e)
{
Console.WriteLine("异步调用结果为:" + e.Result);
Console.WriteLine("异步调用结束");
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有