目前我自己使用的异步实现方式有两种:
1.建立线程
2.使用回调,通过delegate的begininvoke问题是:
这两种方式好像都是新建立一个线程来达到异步的,那么这两种方式有什么区别?
对于异步来说,上面哪种方式更好一点??好在什么地方呢?
就服务端程序的执行线程来说,肯定是使用线程好一些。目前我就知道使用begininvoke可以很容易的获取异步的执行结果,线程差了点,但是同样也可以实现。那么他们的最大的区别在什么地方呢?
1.建立线程
2.使用回调,通过delegate的begininvoke问题是:
这两种方式好像都是新建立一个线程来达到异步的,那么这两种方式有什么区别?
对于异步来说,上面哪种方式更好一点??好在什么地方呢?
就服务端程序的执行线程来说,肯定是使用线程好一些。目前我就知道使用begininvoke可以很容易的获取异步的执行结果,线程差了点,但是同样也可以实现。那么他们的最大的区别在什么地方呢?
异步回调接实方法参数。
导步回调你可以查询是否调用完成,或者等待方法完成,线程不能或者很麻烦我觉得最有用的就是合理安排调用时间,通知机制、另外,在线程中处理控件的时候你也不得不用委托
很多类都提供了异步方法,如 数据流类,webservice类,优势是在线程中判断一个方法是否执行完成无什么用处
返回值也不好处理了。
第二种方法是CLR从线程池中取线程来执行,如没有可用资源,可能需要等待准则:若想要尽快地运行关联任务或者执行一个不常运行的耗时任务,应该选择Thread类,其他情况,应选择线程池来处理更可能扩展的服务器端任务.
委托的begininvoke方法是建立在线程池的基础上的所以控制手段比较少一点
不过还是推荐用线程池的线程
正确自己刚刚网上找了篇文章 http://space.itpub.net/12639172/viewspace-526512,为了,自己回复一下