От: | server_mouse | about:blank | |
Дата: | 08.10.09 08:47 | ||
Оценка: |
public class TestService : MarshalByRefObject
{
public event EventHandler<EventArgs> TestEvent;
public void Test()
{
Console.WriteLine("Test() called. Process:" + Process.GetCurrentProcess().Id);
if (TestEvent != null)
TestEvent(this, null);
}
}
[STAThread]
static void Main(string[] args)
{
var isServiceNotStarted = false;
using (var mutex = new Mutex(true, "RemotingTest", out isServiceNotStarted))
{
TestService service;
if (isServiceNotStarted)
{
Console.WriteLine("Starting service...");
RemotingConfiguration.Configure("service.config", false);
service = new TestService();
}
else
{
Console.WriteLine("Starting client...");
RemotingConfiguration.Configure("client.config", false);
service = new TestService();
service.TestEvent += (sender, arg) =>
{
Console.WriteLine("TestEvent fired, Process:" + Process.GetCurrentProcess().Id + " Thread:" + Thread.CurrentThread.ManagedThreadId);
};
}
Console.WriteLine("Process:" + Process.GetCurrentProcess().Id + " Thread:" + Thread.CurrentThread.ManagedThreadId);
service.Test();
Console.WriteLine("Press Enter to exit");
Console.ReadLine();
}
}
Starting service...
Process:4644 Thread:1
Test() called. Process:4644
Press Enter to exit
как видите упоминания о том что у клиента сработал обработчик события нет. Зато он появляется в сервере:Starting client...
Process:3576 Thread:1
Press Enter to exit
Starting service...
Process:4644 Thread:1
Test() called. Process:4644
Press Enter to exit
Test() called. Process:4644
TestEvent fired, Process:4644 Thread:4