代码之家  ›  专栏  ›  技术社区  ›  tuinstoel

C、IAsyncResult和线程池

  •  5
  • tuinstoel  · 技术社区  · 15 年前

    我用 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);
    

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

    1 回复  |  直到 9 年前
        1
  •  9
  •   JaredPar    15 年前

    是的,这项工作将在线程池中进行。msdn中的此页深入介绍了BeginInvoke的工作方式:

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