MarshalByRef 개체를 사용하여 서버 쪽에서 스레드를 처리하는 방법을 알고 싶습니다..NET remoting 스레딩 모델
을 감안할 때 내 원격 화 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이므로 두 opeations는 별도의 원격 프로 시저 호출입니다. 그들은 별도의 스레드에서 실행됩니까? 그렇다면 작업 1이 완료되기 전에 작업 2가 실행될 수 있습니까?
추 신 : MyRemotedClass MarshalByRef를 작성하는 것은 나쁜 결정입니다. 그러나 나는 그것을 바꿀 수 없으므로 그것을 제안하지 마십시오.
MarshalByRefObject 인 경우 새 인스턴스를 만들지 않을 것이라고 생각하지 않습니다. MBRO의 전체적인 요점은 단지 참조가 마샬링되고 객체 자체가 서버에 "존재"한다는 것입니다. –
- 따라서 원격 평생 서비스/임대. –