EasyAsync is a small C# coroutine library that takes the pain out of .NET asynchronous programming.
It allows you to easily transform a complex event driven program to a more natural and much simpler cooperative multi tasking one
Using the succinct C# 3.0 lambda syntax and iterators, the EasyAsync coroutine library allows you to easily build high performance asynchronous applications.
The library automatically handles all multi threading concerns for you!
There is built in support for Windows forms - which means no more frozen UI threads.
Also there is support for inter task communication - Monitors that can be waited & pulsed by tasks running on the same
Look at the samples for what all is possible with this library.
Here is an echo server written in 60 lines of code capable of handling hundreds of socket connections in a single thread!
Are you sold yet?References:
Please refer to the following for similar patternshttp://tomasp.net/blog/csharp-async.aspxhttp://msdn.microsoft.com/en-us/magazine/cc546608.aspxhttp://state-threads.sourceforge.net/docs/st.html
And also my coroutine fiber hosting hack for .NET 1.1. http://msdn.microsoft.com/en-us/magazine/cc164086.aspxNote
Jeffrey Richter's articles are as always a pleasure to read, but I swear I had a similar implementation way back in 2004 that was reviewed by Ian Griffiths!