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 7:37 PM by ajaishankar, version 7
Comments
RainerHilmer wrote  Oct 31 2008 at 12:14 AM 
Cool thing but can you please add XML code comments so we can use the intellisense self-explanatory feature? We don't have any kind of documentation at hand except for some samples.

Updating...
© 2006-2009 Microsoft | About CodePlex | Privacy Statement | Terms of Use | Code of Conduct | CodePlex Blog | Version 2008.12.9.14291