C #, IAsyncResult e il pool di thread
-
22-07-2019 - |
Domanda
Uso il metodo Action<object>.BeginInvoke()
, utilizza questo pool di thread o no?
Ho il seguente codice 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);
Il pool di thread viene utilizzato dietro le quinte o no? O il sistema crea thread normali?
Soluzione
Sì, questo lavoro avverrà nel pool di thread. Questa pagina in MSDN approfondisce il funzionamento di BeginInvoke:
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow