C#编写WIn服务的问题
用System.Timers.Timer控制方法,当数据库的数据不为0时,方法执行正常。但是当数据库的数据等于0时,Win服务状态为“以启动”,但是当数据库的数据再增加的时候,方法不执行。有遇到过类似问题的吗?
if (tmrTimer == null)
{
tmrTimer = new System.Timers.Timer();
tmrTimer.Elapsed += new System.Timers.ElapsedEventHandler(UpCar);
tmrTimer.Interval = 200;
tmrTimer.Enabled = true;
}
else
{
tmrTimer.Start();
} --------------------编程问答-------------------- 设断点进行单步调试。 --------------------编程问答-------------------- 服务也可以设置断点?怎么设置呀? --------------------编程问答-------------------- --------------------编程问答-------------------- 怎么说呢,这个问题很少见,我都郁闷了..............实在是不知道从哪下手了... --------------------编程问答-------------------- 唉,服务状态虽然不能调试,但是你可以修改一下program,改成控制台应用,直接调用start方法不就可以了吗?
--------------------编程问答-------------------- 哦嘿嘿谢谢,我没那么用过。我就是一个新手,嘎嘎。。。。。 --------------------编程问答-------------------- 还是想不通,唉~~~~~~ --------------------编程问答-------------------- 设置断点,附加到进程 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 呵呵,谢谢大家。现在我就是想不通,为什么有数据的时候好用,当数据库数据为0,再加数据就不好用了呢?
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
static void Main()
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
// new ...
};
你的服务 serv = new 你的服务();
serv.调试函数();
ServiceBase.Run(ServicesToRun);
}
--------------------编程问答-------------------- tmrTimer的对象new的时间不对吧?
如果tmrTimer为null,由于对象没被new,调用不到start()方法吧?
另外timer的autoreset属性设为true试试呢?
还有最重要的就是,一定要像yanran_hill说的那样,改改代码,在控制台里调试一下,不然哪里出错都不知道。
补充:.NET技术 , C#