Event Aggregator aggregates events from multiple objects into itself, passing that same event onto its observers.
To get the source code of the library via git just type:
https://github.com/timothy-makarov/AsyncEventAggregator.git
cd ./AsyncEventAggregator
To install library by using Nuget package manager execute next command:
Install-Package EventAggregator
Asynchronous Event Aggregator requires .NET Framework 4.0.
var p1 = new Program(); var p2 = new Program(); p1.Subscribe( async p => { Console.Write("Ping... "); await Task.Delay(250); await p1.Publish(new Pong().AsTask()); }); p2.Subscribe( async p => { Console.WriteLine("Pong!"); await Task.Delay(500); await p2.Publish(new Ping().AsTask()); }); p2.Publish(new Ping().AsTask()); Console.ReadLine(); p1.Unsubscribe(); p2.Unsubscribe();