MarshalByRef オブジェクトを使用して、サーバー側でスレッドがどのように処理されるかを知りたいです。
リモート化された 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
サーバー側では、2 つの書き込み操作があります。スレッドは ThreadPool からのものであると想定しています。ただし、クラスは MarshalByRef であるため、両方の操作は別々のリモート プロシージャ コールです。それらは別のスレッドで実行されますか? はいの場合、操作 1 が終了する前に操作 2 が実行される可能性はありますか?
PS: MyRemotedClass MarshalByRef を作成するのは悪い決定です。しかし、それを変更することはできませんので、提案しないでください。