我正在写一个需要长时间睡眠的Windows服务(15小时是最长的睡眠,30分钟是最短的).我目前正在使用Thread.Sleep(calculatedTime)将我的代码置于睡眠模式.Thread.Sleep是最佳选择还是我应该使用计时器?我已经谷歌搜索了一段时间,无法找到简明的答案.由于这是一个Windows服务,我不必担心锁定UI,所以我想不出不使用Thread.Sleep的原因.
任何见解将不胜感激.
我的问题是,这是最好的做法.找不到任何好的例子.我在VS2005创建的文件中有以下代码:
public partial class ObjectFolder : ServiceBase
{
protected override void OnStart(string[] args)
{
ObjectFolderApp.Initialize();
ObjectFolderApp.StartMonitorAndWork();
}
protected override void OnStop()
{
// TODO: Add code here to perform any tear-down necessary to stop yourservice.
}
}
Run Code Online (Sandbox Code Playgroud)
然后:
class ObjectFolderApp
{
public static bool Initialize()
{
//all init stuff
return true;
}
public static void StartMonitorAndWork()
{
Thread worker = new Thread(MonitorAndWork);
worker.Start();
}
private static void MonitorAndWork()
{
int loopTime = 60000;
if (int.TryParse(_cfgValues.GetConfigValue("OfWaitLoop"), out loopTime))
loopTime = 1000 …Run Code Online (Sandbox Code Playgroud)