C产品在市场上有哪些独特优势?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1166个文字,预计阅读时间需要5分钟。
一个应用场景,浏览器上传一个文件,文件后台调用转换,需要消耗相对较长的时间,这样,如果是一个线程同步式的操作,那么用户在浏览器上就会感觉到卡顿,卡卡卡卡。
一个应用场景,浏览器上传一个文件,此文件后台调用文件转换,需要耗费相当长的时间,这样,如果是一个线程同步式的做下去,那么用户在浏览器上感觉就是卡住了,卡卡卡卡,这里我们利用委托的BeginInvoke和EndInvoke方法操作线程,BeginInvoke方法可以使用线程异步地执行委托所指向的方法。然后通过EndInvoke方法获得方法的返回值(EndInvoke方法的返回值就是被调用方法的返回值),或是确定方法已经被成功调用,说白了就是相当于开个多线程,你用户文件保存了之后,响应返回,这个BeginInvoke异步去执行委托方法,完了之后呢,再执行你的异步回调函数;
大概步骤
1:先把你要异步执行的方法抽离出来;
2:定义一个该异步方法的委托;
3:在调用地方实例化这个委托;
4:调用此委托实例的BeginInvoke方法,在此方法里,前面填委托的参数,接着是委托方法结束后的回调函数;
5:写委托的回调函数,回调函数是固定的参数(IAsyncResultIR)在这个里面,可以获取用户定义的对象,它限定或包含关于异步操作的信息(AsyncState)然后调用EndInvoke,获取到委托方法结束的返回值。
本文共计1166个文字,预计阅读时间需要5分钟。
一个应用场景,浏览器上传一个文件,文件后台调用转换,需要消耗相对较长的时间,这样,如果是一个线程同步式的操作,那么用户在浏览器上就会感觉到卡顿,卡卡卡卡。
一个应用场景,浏览器上传一个文件,此文件后台调用文件转换,需要耗费相当长的时间,这样,如果是一个线程同步式的做下去,那么用户在浏览器上感觉就是卡住了,卡卡卡卡,这里我们利用委托的BeginInvoke和EndInvoke方法操作线程,BeginInvoke方法可以使用线程异步地执行委托所指向的方法。然后通过EndInvoke方法获得方法的返回值(EndInvoke方法的返回值就是被调用方法的返回值),或是确定方法已经被成功调用,说白了就是相当于开个多线程,你用户文件保存了之后,响应返回,这个BeginInvoke异步去执行委托方法,完了之后呢,再执行你的异步回调函数;
大概步骤
1:先把你要异步执行的方法抽离出来;
2:定义一个该异步方法的委托;
3:在调用地方实例化这个委托;
4:调用此委托实例的BeginInvoke方法,在此方法里,前面填委托的参数,接着是委托方法结束后的回调函数;
5:写委托的回调函数,回调函数是固定的参数(IAsyncResultIR)在这个里面,可以获取用户定义的对象,它限定或包含关于异步操作的信息(AsyncState)然后调用EndInvoke,获取到委托方法结束的返回值。

