现在有个需求,有个时间框,是选择时间的,然后在页面点击按钮 启动服务实现的功能是在 选择的时间点 去启动这个 windows服务。这怎么弄???如何给windows服务传参数?另外windows服务里有个 timer , 是不是必须要添加这个控件啊???这个控件的作用是每隔多少时间去做某些事,我这个需求好像用不到。

解决方案 »

  1.   

    你这额外需要有一个Windows Service来支撑,或者是任务计划的程序也行,但如果使用的是Windows Service,你还真需要有一个Timer,因为你需要定时去判断是不是要启动某个Service,比如说Timer每隔10分钟去查一次数据表,看看在这个时间段是不是得执行什么动作,如果没有Timer,你需要不停地用while循环+sleep去实现。没明白你说的要给Windows Service传参数是啥意思
      

  2.   

    谢谢楼上两位,现在确定了 这个服务是一直开着的,,确实需要time 用来 每隔一段时间去 数据库 查 有没有新纪录如果有把里面的 时间字段取出来,然后等时间点到了这个 字段的时间 然后做某个事情。
      

  3.   

    现在有个问题 怎么比较当前时间与数据库里的填的时间?
    timespan?
      

  4.   

    额 ,最后个问题 就是windows服务 调试 是不是不能一步一步的?
    是必须把这个服务装起来吗?
      

  5.   

    windows服务调试是很麻烦的,不能直接在 VS 里面调试的。如果说调试的话,其实应该是你的应用做成一个类库,然后你的windows服务去调用这个类库里的实现方法,这样当你需要调试的时候可以在一个窗体里模拟服务调用这个类库的实现方法调试。而且安装了服务之后,发现有BUG或者需求有变更的话,直接修改类库的实现,生成dll 后替换掉原来服务的 dll,这样也避免了不断重复卸载安装服务的麻烦!
      

  6.   

    c#开启windows服务
    http://topic.csdn.net/u/20070321/13/e2d9e389-86c8-4d1f-8ec4-2f4d9aa39c8c.html定时的windows服务
    http://yaojaylone.iteye.com/blog/1075853还有就是像你刚才说的一样拖拉一个timer控件。
      

  7.   

    vs2003 创建的 windows服务的 输出类型为 windows 应用程序而vs2008 创建的服务 输出类型为 windows服务  z这有关系吗?
      

  8.   

    下班前自己再顶下,明天来结贴。
    问题是:
    vs2003 创建的 windows服务的 输出类型为 windows 应用程序而vs2008 创建的服务 输出类型为 windows服务这有关系吗?
      

  9.   

    另外,Windows Service也并不是不可以调试,有以下两种方式可以解决1. 附加至进程
    2. 将程序设置为Console程序,然后更改相应的代码,即可以在普通模式下运行