什么是.Net的异步机制(Invoke,BeginInvoke,EndInvoke) - step 22011-12-05 博客园 Andy Huang我们怎样进行异步编程/开发?现在扩充下上篇文章的类(AsyncTest),提供更多的例子并从中做下简单的对比, 从新的认识下异步的内部机制,下面我们增加一个新的委托1步,我们添加一个新方法(计算年薪YearlySalary)public decimal YearlySalary(decimal salary, int monthCount, decimal bonus);2步,为这个方法增加异步的功能,这样我们仍然使用委托(Delegate)public delegate decimal SalaryEventHandler(decimal salary, int monthCount, decimal bonus);经过简单修改后,下面是我们新的AsyncTest类Code1
1//我们使用委托来提供.Net的异步机制2public delegate string AsyncEventHandler(string name); // 对应Hello 方法3public delegate decimal SalaryEventHandler(decimal salary, int monthCount, decimal bonus); // 对应YearlySalary方法4public class AsyncTest5{6 public string Hello(string name)7 {8 return "Hello:" + name;9 }1011 /**//// <summary>12 /// 计算一年的薪水13 /// </summary>14 /// <param name="salary">月薪</param>15 /// <param name="monthCount">一年支付月数量</param>16 /// <param name="bonus">奖金</param>17 /// <returns></returns>18 public decimal YearlySalary(decimal salary, int monthCount, decimal bonus)19 {20 //添加辅助方法,查看当前的线程ID21 Console.WriteLine("Thread ID:#{0}", Thread.CurrentThread.ManagedThreadId);2223 return salary * monthCount + bonus;24 }25}