随笔分类 -  异步编程

摘要:使用IAsyncResult设计模式的异步操作是通过名为Begin操作名称和操作名称End的两个方法来实现的,这两个方法分别开始和结束异步操作。在调用Begin操作名称后,应用程序可以继续在调用线程上执行指令,同时异步操作在另一个线程上执行。每次调用Begin操作名称时,应用程序还应调用End操作名称来获取操作的结果。 Begin 操作名称方法立即将控制权返回给调用线程。如果Begin操作名称方法引发异常,则会在开始异步操作之前引发异常。如果Begin操作名称方法引发异常,则意味着没有调用回调方法。 End操作名称方法可结束异步操作。End操作名称方法的返回值与其同步副本的返回值类型相同,并. 阅读全文
posted @ 2013-12-09 09:22 Joe·Zhou 阅读(964) 评论(0) 推荐(1)
摘要:要实现异步编程,就需要正确的实现IAsyncResult接口。IAsyncResult共有四个属性: <!--?XML:NAMESPACE PREFIX = "[default] http://www.w3.org/1999/xhtml" NS = "http://www.w3.org/1999/x 阅读全文
posted @ 2013-12-08 11:45 Joe·Zhou 阅读(3018) 评论(0) 推荐(1)
摘要:在讨论这个问题之前,先学习一下时间片的概念。时间片即CPU分配给各个程序的时间,每个进程被分配一个时间段,称作它的时间片,即该进程允许运行的时间,使各个程序从表面上看是同时进行的。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。而不会造成CPU资源浪费。(百度百科)多线程正是充分利用利用时间片,从而充分利用CPU的宝贵资源来提高执行效率。但是创建线程和销毁线程的开销都比较大,但线程数量太多时,性能会很差,因为操作系统需要在它们之间切换,消耗的内存也也很大。 在执行很多任务时,开辟更多线程对于性能提升没有太大意义,反而. 阅读全文
posted @ 2013-12-07 19:23 Joe·Zhou 阅读(1267) 评论(0) 推荐(2)