Nie jestem ekspertem tematu Staram się zrozumieć więcej asynchronicznego świata dostępnego w .NET. Task.Run i ThreadPool.QueueUserWorkItem pozwalają zarówno na wysyłanie pracy na wątku puli, ale jakie są różnice lub, jeśli wolisz, plusy i minusy dwóch? Oto moja lista profesjonalistów. Nie jestem pewien, czy jest kompletny, czy nawet poprawny.Task.Run vs ThreadPool.QueueUserWorkItem
ThreadPool.QueueUserWorkItem zalety:
- możliwość przejścia Argumentem
Task.Run wady:
- Możliwość dostarczania CancellationToken
- Możliwość oczekuje zakończenia zadania
- Możliwość zwrotu wartości do kodu
Możesz przekazywać argumenty do Task.Run poprzez przechwytywanie zmiennych w wyrażeniach lambda. –
Prawda. Nie rozważałem przechwytywania zmiennych, ponieważ jest to coś, co można osiągnąć również za pomocą ThreadPool.QueueUserWorkItem. – Stefano