首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C# 调试 服务程序,如何在OnStart 函数里加断点

2013-12-21 
C# 调试 服务程序,怎么在OnStart 函数里加断点?protected override void OnStart(string[] args) 这个函数

C# 调试 服务程序,怎么在OnStart 函数里加断点?

protected override void OnStart(string[] args)


 这个函数里,加了断点,,但是启动服务后,断点没有进来...

 在
protected override void OnStop()

 也加了断点,,停止服务时,断点进来了


关键问题是,安装服务后,如不启动服务,,在IDE里,就无法"附加到进程"

这样就导致,一直不能进入 onStart()里

怎么整才能调试 这个函数里的代码?


[解决办法]
这个函数里,加了断点,,但是启动服务后,断点没有进来...

OnStart是服务启动过程触发的,等启动好时,也就意味着这个事件处理结束了
你可以把要测试的东西放到子线程中,类似这样
ThreadPool.QueueUserWorkItem(new WaitCallback(DoWork));

void DoWork()
{
    Thread.Sleep(10000);  //等待一段时间,以便附加进程后,可以命中断点
    断点要测试的代码
    。。。
}
[解决办法]
二楼正解,Start一般只进行服务的启动,,至于执行的任务在启动时新开线程去做。关于调试,我一般都是在解决方案里新建个控制台程序,内容跟服务里的任务一样,调试方便,省得每次去附加进程。

热点排行