Windows服务无法启动的问题

魂之挽歌来袭 2014-04-23 10:35:42
老大让写个windows服务
开始我是这么写的
在Start里面我开启一个线程,没10秒执行一次
public void Start()
{
thread = new Thread(delegate()
{
while (true)
{
UpLoadImg();
Thread.Sleep(10000);
}
});
thread.Start();
}

但后来发布到服务器,执行起来有点慢
老大就说可能与线程有关系 就让我不用线程,而且还不能用timer,说是timer容易挂
我没办法了 就只能用死循环了 代码如下:
public void Start()
{
while (IsStop)
{
DateTime dt = DataClass.GetExcuteTime();
if (DateTime.Now > dt)
{
UpLoadImg();
DataClass.UpdateNextTime(DateTime.Now, DateTime.Now.AddSeconds(10));
}
}
}
开始没发现什么问题,但启动服务的时候发现启动不了 仔细想想 确实有问题 但又不知道问题出在哪里 求各位大牛指点下小弟 到底是什么问题 还有就是要是非要用这种死循环 到底该怎么写
...全文
331 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
魂之挽歌来袭 2014-04-24
  • 打赏
  • 举报
回复
引用 10 楼 kangkang08 的回复:
Thread.Sleep();会阻塞线程, c# 里面Thread下面有timer,Forms下面也有timer, 本人开发了很多服务器的程序,timer没你想象的那么容易挂掉!
嗯 谢谢
魂之挽歌来袭 2014-04-24
  • 打赏
  • 举报
回复
引用 12 楼 sp1234 的回复:
你们老大可能会说:“嗯,那还是用现程吧。哦或者用timer吧。”
最后还是用线程搞的
魂之挽歌来袭 2014-04-23
  • 打赏
  • 举报
回复
引用 5 楼 sbwwkmyd 的回复:
你必须在30s内执行完Start,所以这种需求必须用多线程。
嗯 我也在想 那个死循环一直在跑 导致服务无法启动
魂之挽歌来袭 2014-04-23
  • 打赏
  • 举报
回复
引用 3 楼 Humourer 的回复:
可以尝试写Windows服务 你这不是
本来就是写的windows服务啊
魂之挽歌来袭 2014-04-23
  • 打赏
  • 举报
回复
引用 2 楼 hunter103 的回复:
不能在 start(), 写这些会导致服务超时,无法启动。你在服务里加一个 定时器timer,把需要处理的事件放在定时器里。
老大说timer容易挂 不让用timer
showjim 2014-04-23
  • 打赏
  • 举报
回复
你必须在30s内执行完Start,所以这种需求必须用多线程。
cheng2005 2014-04-23
  • 打赏
  • 举报
回复
别的不说,你的老大本身就是个半瓶水。悲哀。
X_SpringSun 2014-04-23
  • 打赏
  • 举报
回复
可以尝试写Windows服务 你这不是
hunter103 2014-04-23
  • 打赏
  • 举报
回复
不能在 start(), 写这些会导致服务超时,无法启动。你在服务里加一个 定时器timer,把需要处理的事件放在定时器里。
xdashewan 2014-04-23
  • 打赏
  • 举报
回复
你这Start()是什么函数,如果是和form_load一样的函数的话,那在执行完之前是无法显示出form,服务同理也无法开启,所以当你在里面写个死循环就无法走完Start(),导致服务无法开启。
  • 打赏
  • 举报
回复
你们老大可能会说:“嗯,那还是用现程吧。哦或者用timer吧。”
  • 打赏
  • 举报
回复
引用 8 楼 kxm_2012 的回复:
引用 5 楼 sbwwkmyd 的回复:
你必须在30s内执行完Start,所以这种需求必须用多线程。
嗯 我也在想 那个死循环一直在跑 导致服务无法启动
试试看,你们老大怎么“说”。
kangkang08 2014-04-23
  • 打赏
  • 举报
回复
Thread.Sleep();会阻塞线程, c# 里面Thread下面有timer,Forms下面也有timer, 本人开发了很多服务器的程序,timer没你想象的那么容易挂掉!
霜寒月冷 2014-04-23
  • 打赏
  • 举报
回复
用timer ,怕服务当机,可以10秒执行一次,服务没那么脆弱。写循环一直执行的话,占用资源更大的。

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧