Project Description

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 thread :-)

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!

asyncserver.jpg

Are you sold yet?

References:

Please refer to the following for similar patterns

http://tomasp.net/blog/csharp-async.aspx
http://msdn.microsoft.com/en-us/magazine/cc546608.aspx
http://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.aspx

Note

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!

Last edited Sep 1, 2008 at 6:37 PM by ajaishankar, version 7