Pattern | Description | Based On | Notes |
Thread based | By creating System .Threading .Thread instance |
Managed Thread | Expensive, not recommended |
Standard BeginXxx and EndXxx methods |
By calling BeginXxx method with a user callback; calling EndXxx inside that user callback |
Thread pool | Widely used, standard, recommended, support cancellation and continuation |
ThreadPool | By calling ThreadPool ’s static QueueUserWorkItem method |
Thread pool | Widely used, recommended use as much as possible |
Delegate | By calling Delegate’s BeginInvoke and EndInvoke instance methods |
Thread pool | Less used |
Event based | By subscribing to the appropriate event and calling the appropriate method | Thread pool | Avoid use as much as possible, not recommended |
Task based | By creating System .Threading .Tasks .Task instance |
A specified task scheduler | Recommended, supports all features of a thread pool pattern, and has many other features |
async method and await expression |
By using async and await keywords |
Task based pattern | The new C# 5.0 asynchronous pattern |
Read more in The Asynchronous Programming Models (C# 5.0 Series) at CodeProject
You must be logged in to post a comment.