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();