我有一个Service,设置了InstanceContextMode.Single单例模式,
然后为了测试,我在服务里定义了一个static int i=0;
方法里每调用一次i就自增一次现在通过ServiceHost自寄宿,利用Using(serviceHost....){}来启动服务
每次调用后i都会自增,问题是,当我关闭了服务,然后再开启(不是把宿主程序关了而是把开启服务的线程释放了),发现这个i居然没有重置为0,也就是说不管ServiceHost是不是关闭了,这个服务单例是属于宿主程序本身?而不是隶属于ServiceHost这个类?那不是没法释放服务了?我初学,不太明白,不能在UI界面提供启动和关闭服务功能吗?只能关闭宿主程序再打开?
然后为了测试,我在服务里定义了一个static int i=0;
方法里每调用一次i就自增一次现在通过ServiceHost自寄宿,利用Using(serviceHost....){}来启动服务
每次调用后i都会自增,问题是,当我关闭了服务,然后再开启(不是把宿主程序关了而是把开启服务的线程释放了),发现这个i居然没有重置为0,也就是说不管ServiceHost是不是关闭了,这个服务单例是属于宿主程序本身?而不是隶属于ServiceHost这个类?那不是没法释放服务了?我初学,不太明白,不能在UI界面提供启动和关闭服务功能吗?只能关闭宿主程序再打开?
public class Service:IService
{
static int i = 0;
public int doSomething()
{
i ++;
return i;
}
}这是全局静态变量?不是吧,我经常不用private
public class Class1
{
static int a = 0; public Class1()
{
a++;
MessageBox.Show(a.ToString());
}
}
你实例2次测试下~~