【问题标题】:C#, IAsyncResult and the thread poolC#、IAsyncResult 和线程池
【发布时间】:2010-10-01 09:01:02
【问题描述】:

我使用Action<object>.BeginInvoke() 方法,这是否使用线程池?

我有以下 C# 代码:

    List<FileHash> hashList1 = hashList.Where((x, ind) => ind % 2 == 0).ToList();
    List<FileHash> hashList2 = hashList.Where((x, ind) => ind % 2 == 1).ToList();

    Action<object> oddWork = CalcHash;
    Action<object> evenWork = CalcHash;

    IAsyncResult evenHandle = evenWork.BeginInvoke(hashList1, null, null);
    IAsyncResult oddHandle = oddWork.BeginInvoke(hashList2, null, null);

    evenWork.EndInvoke(evenHandle); 
    oddWork.EndInvoke(oddHandle);

线程池是否在后台使用?还是系统创建普通线程?

【问题讨论】:

    标签: c# threadpool iasyncresult


    【解决方案1】:

    是的,这项工作将发生在线程池中。 MSDN 中的此页面深入介绍 BeginInvoke 的工作原理:

    http://msdn.microsoft.com/en-us/library/2e08f6yc.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-15
      • 2020-04-24
      • 1970-01-01
      • 2013-08-05
      • 1970-01-01
      • 2010-11-27
      • 1970-01-01
      相关资源
      最近更新 更多