Great stuff. Have you guys spoken with the compiler teams about potentially just adding the SerializableAttribute to closure classes and/or anonymous types in their next versions?? Having to manually introduce an MBV wrapper class for scenarios where multiple values need to be passed in seems like a it's going to turn into an exercise in typing.

This is what I came up with. It runs in AppDomainScheduler named scheduler. I want to build one of these schedulers to send remote entity framework queries around to different machines using WCF underneath. Is this possible? Any good getting started guides?

Also I run code contracts static checker and it complains that I might return null. I tried a few things like returning Disposable.Empty if IDisposable returned from Schedule function is null but that failed also. What is the correct behavior here to satisfy the contract. Thanks so much.

Thanks for the intro series on Rx they are very helpful! I was very excited to start using it and the first thing I tried failed miserably! I just did not have enough examples to show us how to hook up Rx to an svc service.

I just put an IEnumrable off an svc service and tried to subscribe to it from a client. I got an error service abnormally disconnected.

Can you show us an example on how to hookup Rx client to web service?Thanks!

I think Erlang is much much simpler... this stuff ... it simply smells from a mile:)

I know that its possible to do it, but is it easy stuff, can you explain it to a junior quickly?

what you are trying to do with this azure scheduler is similar to what erlang can do of of a box, you have a problem passing stuff across boundaries, in Erlang you can send new code to execute on remote machine, and do upgrade on a fly, I don't expect that behavior here. Its almost indistinguishable, to pass a message across processes on a single node and across processes on different nodes, I know that only form of cross process communication in Erlang is message passing, and the whole VM and language semantics is built on that notion.

This code is self-explanatory

Pid ! {self(), Message}.

or

{process_name, Node} ! {self(), Message}.

you see the code and you say immediately, a got it, the only what you have to know is that "!" sends a message, whereas in your example, aaaa ok I have to remember that we go remote and we have to pass values in a certain way, and we have to remember that this work should be done on remote sheduler, etc, etc, it is not simple... very long way ahead of you... locally RX is great stuff, and I'm fascinated by it, but this azure scheduler stuff is to put it simply is over the top.