哪个 C# 定时器?

2023-11-24

我正在编写一个包含计时器的类(最重要的是,它可能不会在 0 处初始化,它可能已经开始计时),并且该类将包含 Start、Pause、Resume 和 Stop/Complete 方法。我知道我可以使用 C# 中的许多计时器,即 System.Timers.Timer,但是我不确定这个计时器是否允许我以预定义的经过时间启动计时器。

对于这种情况什么是最好的?


不要使用System.Windows.Forms.Timer- 这将在表单的 UI 线程上运行委托,这可能不是您想要的。

System.Timers.Timer源自于System.ComponentModel.Component,因此它面向设计表面。

System.Threading.Timer最适合线程池上的后台任务。

System.Threading.Timer满足您的所有要求(假设您尝试在线程池上运行委托。

public void MyCallback(object o) { ... }
int timeToStart = 1000;
int period = 2000;

//fire the delegate after 1 second, and every 2 seconds from then on
Timer timer = new Timer(MyCallback, null, timeToStart, period);

//pause
timer.Change(Timeout.Infinite, Timeout.Infinite);

//resume
timer.Change(timeToStart, period);

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

哪个 C# 定时器? 的相关文章

随机推荐

  • 在 Android 的列表视图中滑动时显示删除按钮

    扩展另一个 Stackoverflow 问题 我实现了一些手势检测代码 以便我可以检测列表视图 位于 FrameLayout 中 中的行何时被滑动 我在这里关注了达米安关于如何从适配器获取单个行 视图的问题 答案 如何获取列表视图中行的位置
  • imaplib2 :imap.gmail.com 处理程序 BYE 响应:系统错误

    我正在更新一个 python 脚本 该脚本检查 IMAP 是否有新电子邮件 并在有新电子邮件时发送推送通知 问题是每隔几个小时我就会崩溃一次 起初我不太明白发生了什么 但后来我发现M debug 4这给了我一个很好的输出 但我仍然不明白是什
  • 用于最小化其他应用程序的批处理文件

    我怎样才能有一个打开应用程序的bat文件 让我们称之为firefox exe 我如何调用bat文件或任何其他脚本 即vbs 来最小化应用程序 即firefox exe 然后在一两分钟后关闭它 请注意start min不起作用 下面是我的脚本
  • 如何在 Vaadin 8 中添加验证器?

    在 Vaadin 7 中有一个 addValidator 函数 但在 Vaadin 8 中它不存在 Vaadin 7 示例 TextField user new TextField User user setRequired true us
  • 使用 THREE.OBJLoader 渲染 OBJ 文件

    如何使用 THREE OBJLoader 方法渲染 OBJ 文件 我有一个示例 OBJ 格式 但它不会渲染任何内容 也不会在 chrome 开发工具中看到错误 查看 OBJLoader 使用示例 https github com mrdoo
  • 在 ncurses 中实现文本滚动的推荐方法是什么?

    我正在尝试实现一个 ncurses 应用程序 其文本滚动效果如下 推荐的方法是什么 这是我所知道的 您可以使用scroll将文本缓冲区向上或向下移动 1 行 但是 如果向下滚动 您最终会在顶部出现一个空行 如果向上滚动 则会在底部出现一个空
  • C++ 将十六进制字符串转换为有符号整数

    我想在 C 中将十六进制字符串转换为 32 位有符号整数 例如 我有十六进制字符串 fffefffe 其二进制表示形式为 11111111111111101111111111111110 其有符号整数表示形式为 65538 我如何在 C 中
  • 如何将 groupby() 和 value_counts() 转换为多个饼图/条形图

    假设我有一个数据框 并且正在查看其中的 2 列 2 个系列 使用其中一列 no employees 下面 有人可以帮我弄清楚如何创建 6 个不同的饼图或条形图 每个 no employees 分组 1 个 来说明处理列中 是 否 值的值计数
  • C++程序需要文件关联

    我正在分发一个免费软件产品 该产品可以读取和写入具有唯一扩展名的文本文件 我希望双击这样的文件会自动启动该应用程序 在 Windows 7 Professional 上进行开发时 我设置了一个关联 以便在双击时打开文件 方法是右键单击文件
  • 奇怪的UTF8字符串比较

    我在 UTF8 字符串比较方面遇到了这个问题 我真的不知道 它开始让我头疼 请帮帮我 基本上我有一个来自 UTF8 编码的 xml 文档的字符串 Mina Tidigare anst llningar 当我将该字符串与我自己输入的完全相同的
  • 如何改进印地语文本提取?

    我正在尝试从 PDF 中提取印地语文本 我尝试了所有从 PDF 中提取内容的方法 但都不起作用 有解释为什么它不起作用 但没有答案 所以 我决定将PDF转换为图像 然后使用pytesseract提取文本 我已经下载了印地语训练数据 但这也给
  • MySQL 类型=MyISAM 错误

    本月早些时候 我正在开发我的论坛网站 遇到了一个小问题 不幸的是 除了我的数据库之外 一切都很顺利 我在里面做了一张桌子 叫做users用这个脚本 CREATE TABLE users id int 4 NOT NULL auto incr
  • 如何在文本文件中搜索字符串?

    我想检查字符串是否在文本文件中 如果是 则执行 X 如果不是 则执行 Y 但是 此代码始终返回True因为某些原因 任何人都可以看到出了什么问题吗 def check datafile file example txt found Fals
  • 将线程本地内存刷新到全局内存意味着什么?

    我知道Java中易失性变量的目的是对此类变量的写入对其他线程立即可见 我还知道同步块的作用之一是将线程局部内存刷新到全局内存 我从未完全理解在这种情况下对 线程本地 内存的引用 我知道仅存在于堆栈上的数据是线程本地的 但是当谈论堆上的对象时
  • CSS 网格包裹

    是否可以在不使用媒体查询的情况下制作 CSS 网格换行 就我而言 我想要将不确定数量的项目放置在网格中 并且希望该网格进行换行 使用 Flexbox 我无法可靠地很好地间隔事物 我也想避免一堆媒体查询 Here s 一些示例代码 grid
  • 使用 ITextRenderer 从包含非拉丁字符的 HTML 生成 PDF 不起作用

    这是我调查的第二天 没有任何结果 至少现在 我可以问一些非常具体的问题 我正在尝试编写一个有效的 HTML 代码 其中包含 PDF 文件中的一些非拉丁字符iText更具体地使用文本渲染器 from 飞碟 我的简短示例 代码首先使用以下值初始
  • 为什么多个 javascript 库将 $ 用于一种或另一种用途

    我见过几个使用 的 javascript 库 无论是 jQuery mootools prototype 等 甚至一些关于 javascript 的书籍也建议使用 作为 document getElementById 的函数替换 这只是随机
  • Python 请求发布文件

    使用 CURL 我可以发布一个文件 例如 CURL X POST d pxeconfig cat boot txt https ip 8443 tftp syslinux 我的文件看起来像 cat boot txt line 1 line
  • 如何在 iOS 6 中为文本添加下划线?

    我正在尝试在标签中的某些文本下划线 但是 我不知道如何获取标签中整个文本的范围 这是我到目前为止所拥有的 NSMutableAttributedString mat self tableLabel attributedText mutabl
  • 哪个 C# 定时器?

    我正在编写一个包含计时器的类 最重要的是 它可能不会在 0 处初始化 它可能已经开始计时 并且该类将包含 Start Pause Resume 和 Stop Complete 方法 我知道我可以使用 C 中的许多计时器 即 System T