###########################这种windows服务结构怎么写比较好,涉及到多线程,与用户交互等问题?
服务开启后,读一个文件,根据文件来启动线程,我的文件定义的是记录的序列   
 比如文件中的内容是:   
 记录1 
 记录2 
 ...... 
 记录10   
 服务就相应的启动10个线程,线程做的工作是不停地实时(每3秒)取实时数据(怎么取我知道,比如线程1取记录1中定义的),来做一些处理,比如判断当前实时值是否越限,没有越限,就每三秒重复取,重复判断,如果越限,就弹出一个对话框(告诉用户某个值越限了,用户就可以来处理它,比如中止这个判断进程),但是线程还是同时继续在检测,如果又不越限了,刚才那个对话框就会被线程关闭(也就是说用户还没有处理,这个越限自己结束了)   
 几个问题: 
 1.这个读文件的操作应该写在服务的构造函数中还是OnStart函数中,还是在OnStart函数中启动一个线程来读文件?   
 2.我把文件读到缓冲区,再逐个来启动线程,应该有个专门用来启动线程的线程,对吗?   
 3.根据记录来启动的线程数要考虑到100个这个量,每个线程都是互不相关的,比如线程1检测到线程1的实时值越限,线程二也可能同时检测到线程2的实时值越限,都会同时有各自的处理,怎么对这100个线程管理?   
 这样一个服务,应该有个怎么样的结构,目前还没有感觉,请给出建议!谢谢!
------解决方案--------------------2个线程吧...   
 1个主线程负责调用程...检测等工作...   
 第二个线程负责开启线程...   
 不过貌似不好管理...初看乱写的...抛砖引玉而已...
------解决方案--------------------先顶一下
------解决方案--------------------up
------解决方案--------------------关注!
------解决方案--------------------> >  1.这个读文件的操作应该写在服务的构造函数中还是OnStart函数中, 
 > >  还是在OnStart函数中启动一个线程来读文件?   
 可以再OnStart里面直接读文件,甚至可以在OnStart里面直接启动下面需要的线程。   
 > >  2.我把文件读到缓冲区,再逐个来启动线程,应该有个专门用来启动线程的线程,对吗?   
 不需要,可以在OnStart里面做。   
 > >  3.根据记录来启动的线程数要考虑到100个这个量,每个线程都是互不相关的, 
 > >  比如线程1检测到线程1的实时值越限,线程二也可能同时检测到线程2的实时值越限, 
 > >  都会同时有各自的处理,怎么对这100个线程管理?   
 线程之间没有共享资源或者通信的话不需要特殊的管理。
------解决方案--------------------很奇怪 
 我试了下 
 停止服务后再启动,还是会调用构造函数啊   
 这个肯定呀,停止服务就是相当于关闭程序。
------解决方案--------------------搂主可以参考Serv-U