我是线程编程的新手,最近我分配了一个使用线程的问题。我需要你的帮助才能以最佳方式解决问题。
有一个Window Service可以创建线程并调用函数StartScheduler。此函数进一步创建一个线程并调用函数StartJob。在StartJob函数中,创建TimerCallback对象,并且每50秒调用一次LoadandRunJob函数来加载和执行作业。
注意:上面指定的每个线程都是在单独的类中创建的。所以有多个类。
我的要求是当sql server连接断开并且在函数LoadAndRunJob中发生错误时停止窗口服务。
示例代码
private void StartJob ()
{
_timerCallback = new TimerCallback(LoadAndRunJob);
//Schedule the requery to happen every 50 seconds.
_timer = new Timer(_timerCallback, null, 50000, 50000);
}
private void LoadAndRunJob(Object state)
{
try
{
//Here is the code to load and execute the jobs
}
catch
{
//Require code here to stop the service
}
}
我尝试的一件事是在捕获错误后引发事件。并在事件处理程序中停止服务。我不知道这是否是处理它的最佳方式。
答案 0 :(得分:0)
也许这会有所帮助:
catch
{
new System.ServiceProcess.ServiceController("YourServiceName").Stop();
}