跨进程对象管理问题
进程一有类,class1 ,进程二有class2,class2定义如下:
class2
{
static void Main()
{
class1 a = new class2();
}
}
那么在进程2下创建的class1的对象,是在进程1的托管堆中还是在进程2的托管堆中?
但是如果class1如下定义,采用类似工厂方法的模式,有一个工厂方法来返回一个class1的实例,(工厂类当然与class1处于同一进程下)而客户端进程2只是调用了这个工厂方法来返回一个class1的实例,那么这样的对象是在进程1种创建并管理的吗?
同时,看到有些关于服务器端对象管理的问题,在.net中使用的一个叫对象租赁期的模型来解决客户端对象的问题。不知道各位对我的这个问题有什么看法?
问题点数:0、回复次数:3Top
1 楼sp1234(asp.net不是一个语言,是一个操作系统)回复于 2006-03-04 09:31:28 得分 0
使用跨进程对象两种常用方法:Remoting、WebService。
“而客户端进程2只是调用了这个工厂方法来返回一个class1的实例”这句话是错的。进程2只能得到class1的实例的一个客户端代理(即使是在同一台服务器上),而不是class1类型的实例。
异步使用Remoting有很多激活模式,“租赁期”是强迫性的、惩罚错误编程的客户端的,而不是用来解决正常设计逻辑的。Top
2 楼sp1234(asp.net不是一个语言,是一个操作系统)回复于 2006-03-04 09:33:11 得分 0
如果Remoting使用http协议(为了方便穿越防火墙、SSL加密等),根据msdn上所说,其实很慢,而WebService其实要快很多。Top
3 楼xxqq0824(赛跑)回复于 2006-03-04 12:46:54 得分 0
sp1234能留下你的邮件地址吗?想向你请教些关于着方面的事。我的邮箱 xxqq824@163.comTop




