C#, IAsyncResult and the thread pool
-
22-07-2019 - |
Question
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?
Solution
Yes this work will occur in the thread pool. This page in MSDN goes into depth on how BeginInvoke works:
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow