So that's pretty cool.
But here's my latest problem: if a method throws an exception while operating async (in another thread), how do I catch it? It's not even my method implementation.
My load balancer is kicking ass now.... I was testing it with multiple clients, all fetching at different slow speeds, and verifying it sucks down the page from the backend, holding it in memory.
But if I kill a client while downloading, the async IO to write to that client fails (socket goes away), and the worker thread throws an exception. The program stays alive but I'm not sure what's catching it... it writes the exception to the console, which isn't a good solution. I also want to catch it to explicitly shutdown/close/dispose of the socket, and not wait for the GC to do it.
I wonder if there's any difference in behavior between Windows and Mono. I might need to get vmware working again.