刚接触这个,我理解不到位,,请各位前辈指点下:
Object:public class RemotingObject : MarshalByRefObject, INotifyPropertyChanged
{
public void Test()
{
Console.WriteLine("测试来着... ...");
demo("执行到这里告诉你!");//目的是运行到这里时通知下client,但不行....(另外,请问下事件在跨进程中能传递否?)
Console.WriteLine("继续走... ..."); } private void demo(string msg)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(msg));
}
} public event PropertyChangedEventHandler PropertyChanged;
}
Server: public class Server
{
static void Main(string[] args)
{
TcpServerChannel tcp = new TcpServerChannel(5656);
ChannelServices.RegisterChannel(tcp,false);
RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemotingObject), "RemotingObj", WellKnownObjectMode.SingleCall);
Console.ReadLine();
}
}
Client: class Client
{
static void Main(string[] args)
{
ChannelServices.RegisterChannel(new TcpClientChannel(), false);
RemotingObject obj = (RemotingObject)Activator.GetObject(typeof(RemotingObject), "tcp://localhost:5656/RemotingObj");
obj.PropertyChanged += test;
obj.Test();
Console.ReadLine();
} static void test(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
Console.WriteLine(e.PropertyName);//只是借用INotifyPropertyChanged,没其他意思
}
}
我的目的是想在共享对象添加监听。但不知道怎么下手,求解.
另
(另外,请问下事件在跨进程中能传递否?)
谢~~
Object:public class RemotingObject : MarshalByRefObject, INotifyPropertyChanged
{
public void Test()
{
Console.WriteLine("测试来着... ...");
demo("执行到这里告诉你!");//目的是运行到这里时通知下client,但不行....(另外,请问下事件在跨进程中能传递否?)
Console.WriteLine("继续走... ..."); } private void demo(string msg)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(msg));
}
} public event PropertyChangedEventHandler PropertyChanged;
}
Server: public class Server
{
static void Main(string[] args)
{
TcpServerChannel tcp = new TcpServerChannel(5656);
ChannelServices.RegisterChannel(tcp,false);
RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemotingObject), "RemotingObj", WellKnownObjectMode.SingleCall);
Console.ReadLine();
}
}
Client: class Client
{
static void Main(string[] args)
{
ChannelServices.RegisterChannel(new TcpClientChannel(), false);
RemotingObject obj = (RemotingObject)Activator.GetObject(typeof(RemotingObject), "tcp://localhost:5656/RemotingObj");
obj.PropertyChanged += test;
obj.Test();
Console.ReadLine();
} static void test(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
Console.WriteLine(e.PropertyName);//只是借用INotifyPropertyChanged,没其他意思
}
}
我的目的是想在共享对象添加监听。但不知道怎么下手,求解.
另
(另外,请问下事件在跨进程中能传递否?)
谢~~
解决方案 »
- c#编写sql server 2005的扩展存储过程问题
- 我的DataSet更新那错了,请帮助。很着急
- (顶的有分)求助!c#怎莫使用Visual Studio 2005 Extensions for Windows Workflow Foundation ?
- 如何在winform启动时,DataGridView不要自动获得焦点
- 如何利用FTP上传多个文件?
- 如何制作一个监视QQ启动的服务?
- 高分征求《C# 字符串和正则表达式参考手册》一书的ebook版??
- 请问如何在DATAGRID中手工添加一个选择列和删除列
- 如何从DataTable中获取从指定index开始count行数据的DataView?
- 如何定义DataRow啊
- 第一次上法语课,感觉还不错
- TreeView的SelectedNode问题
原因:
1.Remoting对象是被客户端调用的,什么时候调,怎么调客户端知道。
2.服务端是被动等待调用,为了在被调用时处理某些事情,需要事件通知。