C# Concurrency Teil 8: Delegate Tasks
Delegate Tasks repräsentieren CPU-bound Aufgaben die durch den Task Scheduler einem Thread zugewiesen wird. Die Klasse Task wurde zusammen mit TPL (Task Parallel Library) in .NET Framework 4.0 eingeführt. In diesem Blog werden die Best Practices erklärt zum erstellen von Tasks mit TPL mit eventuellen Parametern und Rückgabewerten.
Task kreieren und starten
Wie im vorigen Blog C# Concurrency Teil 7: Die Task-Klasse schon erklärt wurde ist ein Task im Kontext von TPL eine Abstraktion einer CPU-bound Aufgabe die durch den Task Scheduler an einen Thread zugewiesen wird. Das kann ein Thread aus dem Threadpool sein oder ein eigener Thread (mit TaskCreationOptions.LongRunning).
Es gibt 3 Wege einen Task zu kreieren und zu starten:
- Task mit Konstruktor kreieren und dann starten mit task.Start()
- Factory.StartNew() / Task.Factory.StartNew<TResult>()
- Run() / Task.Run<TResult>()