I use the Action<object>.BeginInvoke()
method, does this use the thread pool or not?
I have the following C# code:
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);
Is the thread pool used behind the scenes or not? Or does the system create normal threads?
Yes this work will occur in the thread pool. This page in MSDN goes into depth on how BeginInvoke works:
来源:https://stackoverflow.com/questions/442991/c-iasyncresult-and-the-thread-pool