Skip to content

Instantly share code, notes, and snippets.

@renestein
Last active December 16, 2015 13:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save renestein/5442534 to your computer and use it in GitHub Desktop.
Save renestein/5442534 to your computer and use it in GitHub Desktop.
P. riedl emwac
var ts = myAgentList.ToObservable().Concat(
Observable.FromEventPattern
<NotifyCollectionChangedEventHandler, NotifyCollectionChangedEventArgs>
(
handler => myAgentList.CollectionChanged += handler,
handler => myAgentList.CollectionChanged -= handler
)
.Where(e => e.EventArgs.Action == NotifyCollectionChangedAction.Add)
.SelectMany(c => c.EventArgs.NewItems.Cast<MyAgent>()))
.Select(agent => Observable.FromEventPattern<MyAgent.TickCallBack, int>(handler => agent.OnTick += handler,
handler => agent.OnTick -= handler))
.Merge();
using (ts/*ObserveOn(new SynchronizationContextScheduler(SynchronizationContext.Current))*/
.Subscribe(ev => Console.WriteLine("{0}:{1} Thread: {2}", ev.Sender,
ev.EventArgs,
Thread.CurrentThread.ManagedThreadId),
Console.WriteLine,
() => Console.WriteLine("OnCompleted")))
{
// Něco děláme, třeba přidáme agenty do kolekce …
Console.ReadLine();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment