我想知道如何使用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