Welcome

首页 / 软件开发 / .NET编程技术 / 什么是.Net的异步机制(Invoke,BeginInvoke,EndInvoke) - step 2

什么是.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}