C# 定时器或 Thread.Sleep

2024-02-05

我正在运行 Windows 服务并使用循环和 Thread.Sleep 来重复任务,使用计时器方法会更好吗?

如果是的话,代码示例会很棒

我目前正在使用此代码来重复

int curMinute;
int lastMinute = DateTime.Now.AddMinutes(-1).Minute;

while (condition)
{
   curMinute = DateTime.Now.Minute;

   if (lastMinute < curMinute) {
         // do your once-per-minute code here
         lastMinute = curMinute;
   }

   Thread.Sleep(50000);      // sleeps for 50 seconds

   if (error condition that would break you out of this) {
       break;      // leaves looping structure
   }
}

在我看来,计时器是一个更好的主意。这样,如果您的服务被要求停止,它可以非常快速地响应,而不会再次调用计时器滴答处理程序...如果您正在睡觉,服务管理器将不得不等待 50 秒或终止您的服务线程,这两者都不是很好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 定时器或 Thread.Sleep 的相关文章

  • 在C语言中使用“void”

    我很困惑为什么我们需要通过void转换为 C 函数 int f void return 0 versus int f return 0 什么是正确的做法以及为什么 In C int f 是一种老式的声明 它说f需要固定但未指定数量和类型的参
  • OpenCv读/写视频色差

    我试图简单地使用 openCV 打开视频 处理帧并将处理后的帧写入新的视频文件 我的问题是 即使我根本不处理帧 只是打开视频 使用 VideoCapture 读取帧并使用 VideoWriter 将它们写入新文件 输出文件看起来比输入更 绿
  • 我的线程图像生成应用程序如何将其数据传输到 GUI?

    Mandelbrot 生成器的缓慢多精度实现 线程化 使用 POSIX 线程 Gtk 图形用户界面 我有点失落了 这是我第一次尝试编写线程程序 我实际上并没有尝试转换它的单线程版本 只是尝试实现基本框架 到目前为止它是如何工作的简要描述 M
  • 使用具有现有访问令牌的 Google API .NET 客户端

    用例如下 移动应用程序正在通过 Google 对用户进行身份验证 并且在某些时候 我们需要将用户的视频发布到他的 YouTube 帐户 出于实际原因 实际发布应该由后端完成 已经存储在那里的大文件 由于用户已经通过应用程序的身份验证 因此应
  • 为什么我不能用 `= delete;` 声明纯虚函数?

    Intro 纯虚函数使用通用语法声明 virtual f 0 然而 自 c 11 以来 有一种方法可以显式地传达non existence 特殊 成员函数的 Mystruct delete eg default constructor Q
  • 如何在 Android NDK 中创建新的 NativeWindow 而无需 Android 操作系统源代码?

    我想编译一个 Android OpenGL 控制台应用程序 您可以直接从控制台启动 Android x86 运行 或者从 Android x86 GUI 内的 Android 终端应用程序运行 这个帖子 如何在 Android NDK 中创
  • 为什么要序列化对象需要 Serialized 属性

    根据我的理解 SerializedAttribute 不提供编译时检查 因为它都是在运行时完成的 如果是这样 那么为什么需要将类标记为可序列化呢 难道序列化器不能尝试序列化一个对象然后失败吗 这不就是它现在所做的吗 当某些东西被标记时 它会
  • C# 中的接口继承

    我试图解决我在编写应用程序时遇到的相当大的 对我来说 问题 请看这个 为了简单起见 我将尝试缩短代码 我有一个名为的根接口IRepository
  • Clang 编译器 (x86):80 位长双精度

    我正在尝试在 x86 Windows 平台上使用本机 80 位长双精度 海湾合作委员会选项 mlong double 80 https gcc gnu org onlinedocs gcc x86 Options html似乎不适用于 cl
  • 从多个类访问串行端口

    我正在尝试使用串行端口在 arduino 和 C 程序之间进行通信 我对 C 编程有点陌生 该程序有多种用户控制形式 每一个都需要访问串口来发送数据 我需要做的就是从每个类的主窗体中写入串行端口 我了解如何设置和写入串行端口 这是我的 Fo
  • 将数据打印到文件

    我已经超载了 lt lt 运算符 使其写入文件并写入控制台 我已经为同一个函数创建了 8 个线程 并且我想输出 hello hi 如果我在无限循环中运行这个线程例程 文件中的o p是 hello hi hello hi hello hi e
  • Azure 事件中心 - 按顺序接收事件

    我使用下面的代码从 Azure Event Hub 接收事件 https learn microsoft com en us azure event hubs event hubs dotnet framework getstarted s
  • 将代码拆分为标头/源文件

    我从 Asio 的示例页面中获取了以下代码 class tcp connection public boost enable shared from this
  • 是否可以有一个 out ParameterExpression?

    我想定义一个 Lambda 表达式out范围 有可能做到吗 下面是我尝试过的 C Net 4 0 控制台应用程序的代码片段 正如您在 procedure25 中看到的 我可以使用 lambda 表达式来定义具有输出参数的委托 但是 当我想使
  • 耐用功能是否适合大量活动?

    我有一个场景 需要计算 500k 活动 都是小算盘 由于限制 我只能同时计算 30 个 想象一下下面的简单示例 FunctionName Crawl public static async Task
  • 当前的 x86 架构是否支持非临时加载(来自“正常”内存)?

    我知道有关此主题的多个问题 但是 我没有看到任何明确的答案或任何基准测量 因此 我创建了一个处理两个整数数组的简单程序 第一个数组a非常大 64 MB 第二个数组b很小 无法放入 L1 缓存 程序迭代a并将其元素添加到相应的元素中b在模块化
  • strcmp 给出分段错误[重复]

    这个问题在这里已经有答案了 这是我的代码给出分段错误 include
  • 使用 CSharpCodeProvider 类编译 C# 7.3 的 C# 编译器版本是什么?

    我想使用 Microsoft CSharp CSharpCodeProvider 类来编译 C 7 3 代码 编译器版本在 IDictionary 中指定 在创建新的 CSharpCodeProvider 时将其作为输入 例如 Compil
  • 用于 C# XNA 的 Javascript(或类似)游戏脚本

    最近我准备用 XNA C 开发另一个游戏 上次我在 XNA C 中开发游戏时 遇到了必须向游戏中添加地图和可自定义数据的问题 每次我想添加新内容或更改游戏角色的某些值或其他内容时 我都必须重建整个游戏或其他内容 这可能需要相当长的时间 有没
  • 使用 Crypto++ 获取 ECDSA 签名

    我必须使用 Crypto 在变量中获取 ECDSA 签名 我在启动 SignMessage 后尝试获取它 但签名为空 我怎样才能得到它 你看过 Crypto wiki 吗 上面有很多东西椭圆曲线数字签名算法 http www cryptop

随机推荐

  • SQL Server 用最后一个值替换 NULL [重复]

    这个问题在这里已经有答案了 我想找到一种方法用最后一个非 NULL 值替换 NULL 值 我有一张像这样的桌子 Date Cost 2017 01 01 18 6046511 2017 01 03 22 9787234 2017 01 03
  • oracle 限制为 1000 / hibernate

    Oracle 知道 1000 个元素的限制where a in 条款 当 Hibernate 与 Oracle 结合使用时 是否也存在此限制 Hibernate 中仍然存在此数据库限制 如果您确实需要在 in 子句中包含超过 1000 个项
  • 关于模板专业化和继承的良好实践

    模板专业化不考虑继承层次结构 例如 如果我专门设计一个模板Base并实例化它Derived 不会选择专业 参见下面的代码 1 这可能是一个主要障碍 因为它有时会导致违反里氏替换原则 例如 在工作时这个问题 https stackoverfl
  • python:安装anaconda后,如何导入pandas

    我已经安装了蟒蛇 现在当我尝试跑步时 import pandas as pd 我收到以下错误 Traceback most recent call last File
  • Python 中的词法分析、标记化和解析资源

    人们可以向我指出有关使用 Python 进行词法分析 解析和标记化的资源吗 我正在对一个开源项目进行一些黑客攻击 hotwire http www hotwire shell org 并想对代码进行一些更改lexes http code g
  • Poco C++ 库和 Win32 GUI 集成

    有人曾经在 Win32 GUI 应用程序中使用过 Poco C 库吗 在 PocoFoundation 库中 UnWindows h 头文件中的许多 undef 禁止使用重要的 API 如 CreateWindows LoadLibrary
  • 从tensorflow.js神经网络获取权重

    我有这个顺序模型 this model tf sequential this model add tf layers dense units 16 useBias true inputDim 7 input this model add t
  • 使用 XMLInputFormat 在 hadoop 中解析 xml 时不执行我的 hadoop 映射器类

    我是 hadoop 新手 使用 Hadoop 2 6 0 版本并尝试解析复杂的 XML 经过一段时间的搜索 我了解到 对于 XML 解析 我们需要编写自定义的 InputFormat 即 mahout 的 XMLInputFormat 我也
  • 如何将图像拖放到 HTML5 Canvas 上?

    我修改了一个页面 可以将图像拖放到画布上 它可以做我想要的一切 除了一个 我尝试了多种方法 包括脚本 例如 Kinetic 和 Raphael 我仍然认为这可能是可行的方法 但已经死了 一旦图像被放下 我就无法将其在画布上拖动到新位置 fu
  • 使用 PDFBox 从字符串中删除非法字符

    当我尝试向 PDF 中写入非法字符时 我显然遇到了异常 例如 contentStream showText some illegal characters java lang IllegalArgumentException U 000A
  • Python pandas 相当于替换

    在R中 有一个相当有用的replace功能 本质上 它在数据帧的给定列中进行有条件的重新分配 它可以这样使用 replace df column df column 1 Type 1 在 pandas 中实现相同目标的好方法是什么 我应该使
  • 仅通过命令行在 Windows 上运行 CMake 生成的 INSTALL.vcxproj?

    我有一个 C 程序 正在尝试在 AppVeyor 上构建和部署 因此 我没有可用的 GUI 工具 我的项目的依赖项均使用 CMake 作为其构建系统 并且 CMake 默认情况下 在 Windows 上生成 Visual Studio 项目
  • Java - 同时将两个表达式分配给一个变量

    我刚刚学完 Java 第一年 我一直在查看 JDK 源代码作为练习 我遇到了以前从未遇到过的情况 即在同一个语句中对同一个变量进行了两次赋值 e g variable 表达 表达 这里究竟发生了什么 这是一个相当普遍的事情吗 双重作业的目的
  • 有效连接多个 sas 数据集

    我有超过 200k 个具有相同变量 n macro catDat name nbr call in new dataset data new set libin name run reorder names proc sql noprint
  • ie11 的 CSS 自定义属性 polyfill

    有没有办法用 JavaScript 来 pollyfill ie11 的自定义 CSS 属性 我在考虑加载 检查浏览器是否支持自定义属性 如果不支持 则对属性进行某种查找和替换 这可以通过 JavaScript 或某些库实现吗 Thanks
  • 客户端 javascript 相当于 Lucene

    我想知道是否有一个相当于 Lucene API 的 Javascript 旨在用于客户端来索引相对较小的数据集 一个示例用例是静态站点 例如生成的 能够搜索内容而无需服务器端处理 我发现了这个 http lunrjs com http lu
  • Asp.net 验证错误消息更改标签文本

    我正在使用 asp net 验证控件来验证用户输入 我想要的是使用验证控件生成的错误消息更改标签文本
  • 角度 (1.5.8) 动态组件

    我正在尝试使用 Angular 1 5 8 构建一种动态仪表板 直到最后一个障碍 我已经取得了不错的进步 这实际上是在渲染动态组件 我尝试了 2 个选项 要么添加一个ui view并以编程方式传递小部件的名称 or 这就是我猜的路线more
  • 将参数从父函数传递给嵌套函数Python

    这是我的代码 def f x def g n if n lt 10 x x 1 g n 1 g 0 当我评估 f 0 时 会出现错误 赋值前引用了 x 但是 当我使用 print x 而不是 x x 1 时 它会起作用 看来在 g 的范围内
  • C# 定时器或 Thread.Sleep

    我正在运行 Windows 服务并使用循环和 Thread Sleep 来重复任务 使用计时器方法会更好吗 如果是的话 代码示例会很棒 我目前正在使用此代码来重复 int curMinute int lastMinute DateTime