Is there an equivalent of the COM Out of Process EXE server in .NET? I have an object that loads a large amount of data and it takes a while to load up, and I need multiple instances of it to exist in separate threads. I only want to load the object once due to the time it takes so I'm trying to find a way to have it persist in memory in its own process space. If I were using VB6 an Out of Process server would be ideal for this, but I can't seem to find something similar to this in .NET.

Actually you can make a COM component by setting from classes attributes "COM Class" to True.

MSDN has an extensive article Creating Components in .NET which discusses also Out of Process components.

And, of course, .NET provides threading and BackGroundWorker control. Finally, check if you could use .NET Remoting