日期:2014-05-18  浏览次数:20816 次

怎么控制一个类的生命周期?
我想写一个程序 有很多的窗体,但是有一个类,这个类里的功能是负责socket通讯的,以前的做法是在一个窗体里写socket通讯,这样很方便,但是现在想做到就算切换了窗体,始终有个类在后台负责socket通讯,这样该怎么去设计?

------解决方案--------------------
ok,将逻辑与界面分离是很好的开始。
C# code

static class Program {
    [STAThread]
    static void Main() {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }
}

------解决方案--------------------
当然有个前提,你的Network是贯穿整个程序的,那么可以放在App中,因为其生命周期长过Form。
那如果你的周期是相对比较短暂的,那么可以在响应相应事件后Open Network,然后在某个事件后Close。
但总而言之,你需要将网络部分从界面中抽离出来形成独立的Class进行管理。
------解决方案--------------------
探讨
我想写一个程序 有很多的窗体,但是有一个类,这个类里的功能是负责socket通讯的,以前的做法是在一个窗体里写socket通讯,这样很方便,但是现在想做到就算切换了窗体,始终有个类在后台负责socket通讯,这样该怎么去设计?

------解决方案--------------------
同时推荐你使用Spring.NET或者轻量级的Unity,控制实例的生命周期。
------解决方案--------------------
首先,类没有生存周期,有生存周期的是类的实例,

楼主的问题,最好用单件模式实现,
------解决方案--------------------
Unity好一点。

下载
http://msdn.microsoft.com/en-us/library/ff663144.aspx

一个简单教程

http://msdn.microsoft.com/en-us/library/ff660908(v=pandp.20).aspx