相关疑难解决方法(0)

在Windows服务中使用Thread.Sleep()

我正在写一个需要长时间睡眠的Windows服务(15小时是最长的睡眠,30分钟是最短的).我目前正在使用Thread.Sleep(calculatedTime)将我的代码置于睡眠模式.Thread.Sleep是最佳选择还是我应该使用计时器?我已经谷歌搜索了一段时间,无法找到简明的答案.由于这是一个Windows服务,我不必担心锁定UI,所以我想不出不使用Thread.Sleep的原因.

任何见解将不胜感激.

c# multithreading sleep windows-services

14
推荐指数
4
解决办法
1万
查看次数

如何实现在C#/ .NET2.0中等待一段时间的Windows服务循环

我的问题是,这是最好的做法.找不到任何好的例子.我在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)

c# windows-services

5
推荐指数
1
解决办法
7629
查看次数

标签 统计

c# ×2

windows-services ×2

multithreading ×1

sleep ×1