我想知道如何使用MarshalByRef对象在服务器端处理线程。.NET远程处理线程模型
鉴于我远程的MarshalByRef类:
public class MyRemotedClass : MarshalByRef
{
public int MyInt;
public string MyString;
}
客户端代码(单线程):
MyRemotedClass m = GetSomehowMyRemotedClass();
m.MyInt = 5; // Write operation 1
m.MyString = "Hello World"; // Write operation 2
在服务器端,我们有两个写操作。我假设该线程来自ThreadPool。但是,由于类是MarshalByRef,因此两个操作都是单独的远程过程调用。他们将在单独的线程上运行吗?如果是,在操作1结束之前是否会执行操作2?
PS:制作MyRemotedClass MarshalByRef是个坏决定。但我不能改变这一点,所以请不要提出这个建议。
我不*认为*它会创建一个新的实例,如果它是MarshalByRefObject。根据我的理解,MBRO的重点在于只有一个引用被编组,并且该对象本身“生活在”服务器上。 – 2009-02-08 09:36:58