Today I ran into quite a frustrating .NET Remoting shortcoming. It seems to be impossible to abort a long-running .NET Remoting call. I've checked on Google to see if anybody came up with a proper solution, and I have even tried to gain access to the TCP Sink that is being used, but all failed. Eventually I decided to use an asynchronous delegate to perform the call on the ThreadPool and abandon it when a certain timeout occures. Hopefully the threads are released in time, otherwise we may have a potential memory leak.