设计了一个企业网络监控项目,多个客户端要向同一个服务器端发送建立连接的消息,连接成功后,要向服务器端发送通信消息;而服务器端要对客户端发送的消息进行处理。服务器在长时间运行后,如果不及时进行管理、优化,则会发生一些莫名奇妙的错误。
现在想将服务器进程定时启动,早上七点五十自动启动,下午六点自动关闭。
请各位大侠帮忙写一个有关的代码程序。

解决方案 »

  1.   

    使用Timer控件监控时间,使用System.Diagnostics命名空间下的Process类开启和结束进程的运行。
      

  2.   

    可以将功能实现写到 windows 服务里,然后再服务里加入 timer,timer一直运行着,其中用if作为时间判断  应该就可以了
      

  3.   

     private void ProcessKill(string text)
            {
                Process[] p = Process.GetProcessesByName(processName);
                
                foreach (var item in p)
                {
                    txtLog.Text += text+item.ProcessName + "进程已关闭\r\n";
                    item.Kill();
                   
                    WriteLog(text+item.ProcessName + "进程已关闭");
                }
               
            }
            private void processStart(string text)
            {
                try
                {
                    Process.Start(@path);
                    txtLog.Text += text+processName + "进程已启动\r\n";                WriteLog(text+processName + "进程已启动");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                    WriteLog(ex.ToString());
                }        }
      

  4.   

     private void Form1_Load(object sender, EventArgs e)
            {
                WriteLog("程序启动");
                path = ConfigurationSettings.AppSettings["FilePath"].ToString();
                processName = ConfigurationSettings.AppSettings["processName"].ToString();
                txtTime.Text = ConfigurationSettings.AppSettings["timeInterval"].ToString();            time = new DateTime();
                time = time.AddMinutes(Convert.ToDouble(txtTime.Text));
                timer2.Start();
                btnStrat.Enabled = false;
            }加个timer控件就成了。
      

  5.   

    http://www.viathink.com定时,感觉需要程序外干预
      

  6.   


    附件-》系统工具-》计划任务 设置要执行的exe,启动的时间,频率等程序代码里面用个timer判断下,比如if(DateTime.Now.Hour >= 18)
    {
        Process.GetCurrentProcess().Terminate(true);
    }
      

  7.   

    这种情况说明,你的服务程序设计是有缺陷的,所以才需要进行定时起停这种打补丁的笨办法,当然这种办法确实有一定效果,但是你的服务程序的问题并没有根本解决。(可能的情况是服务器压力增大之后,可能每个小时都需要你重新启动,如果这样,服务程序的修改甚至重构是你的最佳选择)写一个服务启动和停止的命令行工具(搞不好有现成的工具),然后通过计划任务调用这个工具进行系统服务的启动停止
    命令行规格可如下定义:
    cmdservice /start <servicename>
    cmdservice /stop <servicename>如何建计划任务就不用说了吧,就是windows系统本身的计划任务,你把这个命令行参数设置到计划任务中即可如何写停止和启动Windows服务的代码我也不想贴了,死功夫,MSDN中都有例子。
      

  8.   

    工具用Windows API写就需要看一下 Service Control Manager(SCM)的相关资料
    可直接查ControlService这个API
    如果用.net写,就看一下 System.ServiceProcess.ServcieController类的说明
    直接都有示例代码教你如何起停服务程序的。就不贴了,自己去查
      

  9.   

    另外,楼上提供的什么进程起停啊的各位,建议你们也读一下服务程序相关的资料学习一下
    Service程序是不能简单的直接用命令行操作的。
      

  10.   


    楼主有说是service么?说的就是服务器进程,真是...