• 这个简单的“WINDOWS服务“程序代码为何不执行?

  • 本文关于 c#
  • CodeGo.net > 这个简单的“WINDOWS服务“程序代码为何不执行?
  •  

    这个简单的“WINDOWS服务“程序代码为何不执行?



    c#
    刚学习C#,想通过windows服务做个定时提醒的小程序。可启动服务后并没有如期弹出提醒对话框 using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    ..
    ..
    ..
    namespace WinRun
    {
    public class Service1 : System.ServiceProcess.ServiceBase
    {
    private Thread MainThread;
    /// <summary>
    /// 必需的设计器变量 /// </summary>
    private System.ComponentModel.Container components = null;
    public Service1()
    {
    // 该调用是 Windows.Forms 组件设计器所必需的 InitializeComponent();
    // TODO: 在 InitComponent 调用后添加任何初始化
    MainThread=new Thread(new ThreadStart(ThreadFunc));
    MainThread.Priority =ThreadPriority.Lowest ;
    }
    // 进程的主入口点
    static void Main()
    {
    System.ServiceProcess.ServiceBase[] ServicesToRun;

    // 同一进程中可以运行多个用户服务。若要将
    //另一个服务添加到此进程,更改下行
    // 以创建另一个服务对象。例如,
    //
    // ServicesToRun = New System.ServiceProcess.ServiceBase[] {new Service1(), new MySecondUserService()};
    //
    ServicesToRun = new System.ServiceProcess.ServiceBase[] { new Service1() };
    System.ServiceProcess.ServiceBase.Run( ServicesToRun);
    }
    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器
    /// 修改此方法的内容 /// </summary>
    private void InitializeComponent()
    {
    components = new System.ComponentModel.Container();
    this.ServiceName = "WinRun";
    }
    /// <summary>
    /// 清理所有正在使用的资源 /// </summary>
    protected override void Dispose( bool disposing )
    {
    if( disposing )
    {
    if (components != null)
    {
    components.Dispose();
    }
    }
    base.Dispose( disposing );
    }
    /// <summary>
    /// 设置具体的操作,以便服务可以执行它的工作 /// </summary>
    protected override void OnStart(string[] args)
    {
    // TODO: 在此处添加代码以启动服务 MainThread.Start();
    }
    /// <summary>
    /// 停止此服务 /// </summary>
    protected override void OnStop()
    {
    // TODO: 在此处添加代码以执行停止服务所需的关闭操作 MainThread.Abort ();
    }
    public static void ThreadFunc()
    {
    int lastMin=DateTime.Now .Minute;
    while(true)
    {

    MessageBox.Show (DateTime.Now .Minute .ToString ());//如何运行正常,应该显示信息。可运行后此段并没有给出提示,好象并没有执行 System.Threading .Thread .Sleep (5000);
    if (DateTime.Now .Minute-1==lastMin)
    {
    MessageBox.Show ("每隔一钟的提醒信息");
    lastMin=DateTime.Now .Minute ;
    }
    }
    }
    }
    }
    我在ThreadFunc中,在int lastMin=DateTime.Now .Minute处也通过写入文件的方式来测试 CodeGo.net,文件也没有建立,应该ThreadFunc没有执行,不知错在什么地方呢?
    本文地址 :CodeGo.net/1482720/
    -------------------------------------------------------------------------------------------------------------------------
    1.MessageBox 这个类弹出的对话框你是看不到,当然这和具体的操作系统有关。还要设置系统服务与桌面程序的交互
    本文标题 :这个简单的“WINDOWS服务“程序代码为何不执行?
    本文地址 :CodeGo.net/1482720/
    1. 从Web服务引用的C#类不正确的反序列化
    2. Windows服务打印,使用CreateProcessAsUser 为什么会句柄无效?
    3. C#中的正则表达式:返回结果的集合
    4. winform 如何获取局域网中所有打印机的状态?
    5. GDI RoundRect在Compact Framework的:使圆角矩形的外透明
    6. 引用jmail 实例化时出错!瞧瞧
    7. LINQ到SQL:的OnValidate()和自定义域模型类
    8. 怎么判断两个对象是不是相等
    9. 如何声明,它返回的“东西”的泛型集合的方法(C#)
    10. (1-2/15)^3.5的 3.5次方 怎么写

     
    

    Copyright © 2017 CodeGo.net
    http://codego.net/xinwen/ 足球比分网 足球比分 医药招商网 邵阳县新闻