异步委托调用的本质上是不是也是多线程?跟自己另外开一个线程有什么不同吗?

解决方案 »

  1.   

    异步委托就是通过另外开一个线程实现的。人家已经给你做好了,就不必自己再发明一个了。搞懂异步委托要先搞懂IAsyncResult接口。
      

  2.   

    就是,后台维持有线程池,MSDN上看见的文章,但记不太清楚,和你同类似的问题我也问题过,
    参见:http://community.csdn.net/Expert/topic/4913/4913107.xml?temp=.7422296
      

  3.   

    http://tech.ccidnet.com/art/340/20040115/81663_1.html想知道这篇文章的下一篇在哪里可以找到~~
      

  4.   

    另外,这篇文章末尾提到下面的问题,我想知道C#设计师为我们提供的解决方法是什么:这种执行方法在有些情况下会造成不小的问题。比如说,在Windows的桌面应用中有这样一个规则,那就是一切用户界面元素的更改(外观以及属性)必须由这些界面元素的创建线程来进行(术语上叫界面主线程,Primary UI Thread)。如果其它线程试图更新界面元素,那么将会有不可预测的后果。如果你违反了这一原则,那么你的程序在理论上讲是不安全的,即使是问题你一时还没有发现。其实这个问题并不难解决,设计师在设计.NET的时候已经考虑到了这个问题。具体的解决办法我将在下篇文章中做出介绍。 
      

  5.   

    http://blog.csdn.net/xiyou/archive/2006/09/19/1245614.aspx
      

  6.   

    异步差不多就是对多线程进一步封装,提供一种简单的多线程编程模式异步产生的线程在ThreadPool里执行,随进程一起终止。回调方法在异步线程上执行,并不创建新线程UI线程以外的线程更新界面元素时,使用Control.Invoke,把更新处理作为委托传递给UI,使更新处理在UI线程上执行
      

  7.   

    http://tech.ccidnet.com/art/340/20040115/81663_1.html想知道这篇文章的下一篇在哪里可以找到~~//
    这一篇确实要我受益匪浅
    http://www.itcomputer.com.cn/Programs/VC/NET/200512/10727.html  我网上搜索了下,觉得这个是下篇,他们都是翻译http://msdn.microsoft.com/msdnmag/issues/04/05/BasicInstincts/default.aspx 这里的
      

  8.   

    另外,这篇文章末尾提到下面的问题,我想知道C#设计师为我们提供的解决方法是什么:这种执行方法在有些情况下会造成不小的问题。比如说,在Windows的桌面应用中有这样一个规则,那就是一切用户界面元素的更改(外观以及属性)必须由这些界面元素的创建线程来进行(术语上叫界面主线程,Primary UI Thread)。如果其它线程试图更新界面元素,那么将会有不可预测的后果。如果你违反了这一原则,那么你的程序在理论上讲是不安全的,即使是问题你一时还没有发现。其实这个问题并不难解决,设计师在设计.NET的时候已经考虑到了这个问题。具体的解决办法我将在下篇文章中做出介绍。==========================================如果那样子调用的话, 会触发Cross-Thread InvalidOperationException解决方法请参考:
    http://blog.csdn.net/leomaya/archive/2006/12/26/1463695.aspx