b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

methodinvoker?c#回调函数简单例子?wpf methodinvoker?创建无阻塞的异步调用(一)(3)

电脑杂谈  发布时间:2016-11-17 20:03:42  来源:网络整理

我们可以将BeginInvoke和EndInvoke视为将异步函数分割为两部分的特殊函数。BeginInvoke通过自己的两个参数值(一个AsyncCallBack委托,一个object对象)来接收传入参数,EndInvoke用于计算传出参数(标记了out或者ref的参数)和函数返回值。

现在我们回到自己的函数FuncWithParameters,param1、param2、param3是传入值,同时,它们也作为BeginInvoke的参数来处理;函数的返回值是string类型,它将作为EndInvoke的返回类型。比较酷的是,编译器可以通过委托类型,来自动为BeginInvoke和EndInvoke生成正确的参数与返回值类型。

注意我们在异步函数中为参数分配了新的值,这样可以检验这些参数在调用异步函数后,究竟会传出什么样的值……

methodinvoker?c#回调函数简单例子?wpf methodinvoker?创建无阻塞的异步调用(一)

我们的异步函数对参数的改变并没有影响其传出值,现在我们把ArrayList变为ref参数,看看会给EndInvoke带来什么变化。

methodinvoker?c#回调函数简单例子?wpf methodinvoker?创建无阻塞的异步调用(一)

param2没有变化,因为它是输入参数;param1作为输出参数,被更新为300;ArrayList的值已被重新分配,我们可以发现它的引用被指向了一个空元素的ArrayList对象(初始引用已丢失)。通过以上实例,我们应该能理解参数是如何在BeginInvoke与EndInvoke之间传递的。现在我们来尝试完成一个非阻塞模式下的异步调用,这是个重头戏!

见第二篇:谈.Net委托与线程——创建无阻塞的异步调用(二)

posted @

以上就是关于methodinvoker的全部内容,相信你一定会非常满意。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-21102-3.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...