BeginInvoke()方法前部分的参数是用来给调用它的委托对象所代理的那个方法传递参数,最后两个参数中,第一个是用来声明回调函数的方法名,第二个参数@object是 "传递额外的参数 ",因为他本身是Object对象,我们可以传递任何对象。
举个例子:
Code
1
class Program
2
{
3
static void Main(string[] args)
4
{
5
AsyncTest test = new AsyncTest();
6
SalaryEventHandler dele = test.YearlySalary;
7
8
//异步方法开始执行,看最后一个参数(Object对象) [Note1:],这里我们传递2000(int)
9
dele.BeginInvoke(100000, 15, 100000, GetResultCallBack, 2000);
10
11
Console.ReadLine(); // 让黑屏等待,不会直接关闭..
12
}
13
14
static void GetResultCallBack(IAsyncResult asyncResult)
15
{
16
17
//获取原始的委托对象
18
AsyncResult result = (AsyncResult)asyncResult;
19
SalaryEventHandler salDel = (SalaryEventHandler)result.AsyncDelegate;
20
21
//调用EndInvoke获取返回值
22
object val = salDel.EndInvoke(asyncResult);
23
//[Note1:],他的作用就是来 "传递额外的参数",因为他本身是Object对象,我们可以传递任何对象
24
//int para = (int)asyncResult.AsyncState;
25
//Console.WriteLine(para); //输出:2000
26
}
27
}
实例,参数
本文介绍了.NET框架中的BeginInvoke方法使用细节,包括如何通过该方法实现异步操作,并展示了具体的代码示例。解释了BeginInvoke方法参数的作用,特别是用于传递额外参数的Object对象。

被折叠的 条评论
为什么被折叠?



