C# - System.Timers.Timer 的替代方案,在特定时间调用函数

2024-04-20

我想在特定时间调用 C# 应用程序上的特定函数。起初我考虑使用Timer (System.Time.Timer),但很快就变得无法使用。为什么?

简单的。 Timer 类需要一个Interval以毫秒为单位,但考虑到我可能希望执行该函数,假设在一周内,这意味着:

  • 7天=168小时;
  • 168 小时 = 10,080 分钟;
  • 10,080 分钟 = 604,800 秒;
  • 604,800 秒 = 604,800,000 毫秒;
  • 所以间隔是 604,800,000;

现在让我们记住Interval接受的数据类型是int,据我们所知int范围从 -2,147,483,648 到 2,147,483,647。

这使得Timer没有用,不是在这种情况下,而是在超过大约25天的情况下,一旦我们无法设置Interval大于 2,147,483,647 毫秒。


所以我需要一个可以指定何时调用该函数的解决方案。像这样的事情:

solution.ExecuteAt = "30-04-2010 15:10:00";
solution.Function = "functionName";
solution.Start();

因此,当系统时间达到“30-04-2010 15:10:00”时,该函数将在应用程序中执行。

如何解决这个问题呢?


附加信息:这些功能将做什么?

  • 获取气候信息并基于该信息:
  • 启动/关闭其他应用程序(大多数基于控制台);
  • 向这些控制台应用程序发送自定义命令;
  • 电脑断电、重启、睡眠、休眠;
  • 如果可能的话,安排 BIOS 来启动计算机;

EDIT:

看来Interval接受的数据类型是double,但是如果您设置的值大于int to the Interval,并致电Start()它抛出一个异常[0, Int32.MaxValue].

EDIT 2:

Jørn Schou-Rode 建议使用Ncron http://code.google.com/p/ncron/处理调度任务,乍一看这似乎是一个很好的解决方案,但我想听听一些使用过它的人的情况。


您的“Start()”方法应该生成一个线程,该线程以定义的时间间隔唤醒,检查时间,如果没有达到所需的时间,则返回睡眠状态。

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

C# - System.Timers.Timer 的替代方案,在特定时间调用函数 的相关文章

  • 将 System.Drawing.Image 转换为 System.Windows.Media.ImageSource 但没有结果

    我想在我的 WPF 应用程序中将 Image 转换为 ImageSource 我使用正常工作的 Code128 库 已在 WinForms 应用程序中检查 下面的函数返回具有适当大小的 ImageSource 但没有任何内容可见 priva
  • 将数据集导出到 EXCEL

    我使用以下代码将数据库表中的字段导出到 Excel 中 我想要做的是能够编写一条 SQL 语句从多个表中检索字段并将其导出到 Excel 中 这段代码只允许我导出一张表 另外 如何显示保存提示对话框 示例代码将不胜感激 非常感谢 prote
  • 如何将 pem 公钥转换为 openssl RSA* 结构

    假设我必须像这样公开 pem 密钥 BEGIN PUBLIC KEY MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7vbqajDw4o6gJy8UtmIbkcpnk O3Kwc4qsEnSZp TR fQi
  • 如何以编程方式确定 C 中 int 数据的最大和最小限制?

    我正在尝试 K R 的练习 2 1 练习内容如下 编写一个程序来确定范围char short int and long变量 两者signed and unsigned 通过从标准标题打印适当的值并通过直接计算 如果计算它们会更困难 确定各种
  • 将 try_emplace 与 shared_ptr 一起使用

    所以我有一个std unordered map
  • WIX 自动生成 GUID *?

    假设我生成产品 ID 为 的 WIX XML 文件 另外 对于每个组件 GUID 我都使用
  • c#Registry to XML无效字符问题

    我在尝试从注册表创建 XML 文件时遇到问题 在我的笔记本电脑 W7 64b 上它工作正常 生成了 xml 文件 但在另一台计算机 Xp 32b 上抛出异常 System ArgumentException 十六进制值 0x00 是无效字符
  • C++ 克隆惯用语中协变返回类型的用处?

    通常的克隆习惯使用协变返回类型 struct Base virtual Base clone struct Derived public Base Derived clone 我读过一些内容 大意是协变返回类型是 C 后来添加的 较旧的编译
  • NHibernate 中具有不同类型答案的问题

    我正在尝试找到一个问卷问题的简洁解决方案 假设我有一个Questionnaire类有一个集合Answers e g public class Questionnaire public virtual ISet
  • 如何使用 Caliburn.Micro MVVM 将焦点设置到控件

    我有一个表单 我想在发生某些用户操作时将焦点设置到文本框 我知道 MVVM 的处理方式是绑定到 VM 属性 但是 TextBox 没有允许这种情况发生的属性 从虚拟机设置焦点的最佳方法是什么 我创建了一个 IResult 实现 可以很好地实
  • Parallel.For 和 Break() 误解?

    我正在研究 For 循环中的并行性中断 看完之后this http tipsandtricks runicsoft com CSharp ParallelClass html and this http reedcopsey com 201
  • 为什么 MISRA:2012 需要函数原型?

    我想知道为什么 MISRA 2012 需要函数原型 在下面的示例中 这两个原型并不是真正必要的 include
  • 为什么 OOP 中静态类的最佳实践有所不同?

    我目前正在阅读有关 Java 最佳实践的内容 我发现根据这本书 https rads stackoverflow com amzn click com 0321356683我们必须优先选择静态类而不是非静态类 我记得在 C 最佳实践中 我们
  • 修改公共属性的访问修饰符是否是重大更改?

    如果我将公共属性的 setter 的访问修饰符从私有更改为公共 是否会导致引用它的其他程序集发生任何重大更改 UPDATE 这个问题是我 2012 年 1 月博客的主题 https ericlippert com 2012 01 09 ev
  • lambda 表达式是多线程的吗?

    lambda 表达式是多线程的吗 假设当你将数学公式编写为 lambda 方法时 当你将其传递给另一个方法时 它会是多线程的吗 不是100 清楚你问的是什么 您是否想问 lambda 是否自然地在不同的线程上运行 如果是这样 则它们只是 S
  • 父窗体中的居中消息框[重复]

    这个问题在这里已经有答案了 有没有一种简单的方法可以在 net 2 0中将MessageBox居中于父窗体中 我在 C 中确实需要这个并发现中心消息框 C http bytes com topic c sharp answers 26712
  • 为了清楚起见,是否应该在返回类型上使用无用的类型限定符?

    当我们的头文件中有原型时 我们的静态分析工具会抱怨 返回类型上有无用的类型限定符 例如 const int foo 我们这样定义它是因为该函数返回一个永远不会改变的常量 认为 API 看起来更清晰const到位 为了清楚起见 我觉得这类似于
  • 当另一个进程使用 std::fstream 写入文件时从文件读取[重复]

    这个问题在这里已经有答案了 我需要从文件中逐行读取 它是由 std getline 完成的 另一个进程的问题是一直向其附加数据 然后我需要读取新行 例如 文件一开始包含10行 我的程序读取了10行 那么我的程序应该等待 过了一会儿 另一个进
  • 如果未返回,则在一段时间后终止线程

    我有一个线程从网络或串行端口获取一些数据 如果 5 秒内没有收到数据 则线程必须终止 或返回 false 换句话说 如果线程运行时间超过 5 秒 则必须停止 我用 C 编写 但任何 NET 语言都可以 有两种方法 1 封装超时 从网络或串行
  • 你将如何开始自动化我的工作? - 第2部分

    后续这个问题 https stackoverflow com questions 2796128 how would you start automating my job 在经历了第一波进货 9 小时的复制 粘贴 后 我现在相信我已经满足

随机推荐

  • 由于触发器执行,登录“用户”登录失败

    我在部署的 ASP NET Web 应用程序上随机收到此错误 我没有在数据库中使用任何触发器 所以我不知道该怎么做 这是在周末没有人参与申请时出现的 它只是随机发生的 请帮助这是关键任务 这是我收到错误的第一个实例 public stati
  • 如何从 C# 中的本机 dll 捕获 c0000005 异常

    我正在使用一个本机 dll 该 dll 在某处抛出 c0000005 异常 访问冲突 并最终导致我的 Web 服务崩溃 直到该服务被回收 有没有办法捕获异常 我同意其他人的观点 解决问题 但有时您继承代码 而您只想捕获生产中的意外违规 在
  • 有什么办法可以提高 BitmapFactory.decodeStream() 的速度?

    显然这是一项昂贵 耗时的操作 有什么办法可以改善这个情况吗 Bitmap bm BitmapFactory decodeStream InputStream new URL someUrl getContent 我猜想确实没有办法避免这种相
  • 配置具有超过 16 个项目的 UITabBar

    My UITabBarController包含超过 16 个视图控制器 当我进入 更多 选项卡时 我可以看到所有UITabBarItems 如果我单击 编辑 按钮 我可以看到前 16 个图标 但没有足够的空间来显示更多图标 因此从第 17
  • 从 C# 打印标签 - 文档尺寸对于打印机来说太大

    我正在开发一个必须打印标签的应用程序 我使用的标签打印机是 Brother QL 570 标签宽度为66mm 标签长度需要约为45mm 我遇到的问题是我无法配置应用程序来实际打印标签 每次这样做时 我都会收到一条警告 指出文档尺寸对于打印机
  • 无法在表视图中使用自动布局约束

    我有这个表视图 无法添加任何自动布局约束 控件拖动不起作用 没有显示任何约束 并且构建器表单似乎处于非活动状态 我无法在其中设置任何值 见下文 自动布局在整个项目的任何地方都启用 基本上在每个视图上 这是为什么 这是因为您选择了单元格或单元
  • WARN 获取相关 ID 为 1 的元数据时出错:{MY_TOPIC?=INVALID_TOPIC_EXCEPTION} (org.apache.kafka.clients.NetworkClient)

    当我使用 kafka 运行以下命令时0 9 0 1 我收到这些警告 1 你能告诉我我的主题有什么问题吗 我正在与在 ec2 中运行的 kafka 经纪人交谈 kafka console consumer sh new consumer bo
  • iOS FFT Accerelate.framework 在播放期间绘制频谱

    更新2016 03 15 请看一下这个项目 https github com ooper shlab aurioTouch2 0 Swift https github com ooper shlab aurioTouch2 0 Swift
  • java中如何让SSL服务器socket同时支持http和https?

    我正在尝试使用 java 套接字创建简单的 Web 服务器 它应该支持 http 和 https 但我一次只能实现一个 我需要同时支持 http port 80 和 https port 443 的逻辑 这是使用 sslsocket 的 H
  • “错误LNK2001:无法解析的外部符号”[重复]

    这个问题在这里已经有答案了 我的 VC 2008 程序有问题 当我编译它时 会列出以下错误 我花了很多钱 去groups google com找了一下原因 但是没有评论 帮助过我 有人知道问题是什么吗 谢谢 error LNK2001 un
  • 如何使用 Jackson 解析 JSON 数组响应?

    我正在为 Android 构建一个 RESTful 客户端 我有一个关于 Jackson 的问题 我收到以下 JSON 响应 cars active true carName categoryId licenseType licenseTy
  • 从 OFFSET / FETCH NEXT 获取总行数

    因此 我有一个函数可以返回一些我想在我的网站上实现分页的记录 有人建议我使用 SQL Server 2012 中的 Offset Fetch Next 来完成此操作 在我们的网站上 我们有一个区域列出了记录总数以及您当时所在的页面 之前 我
  • 将命名 URL 的值分配给 Django 模板中的变量

    在我的 Django 模板中 我需要将名称 url 的值分配给 with 块中的变量 以便我可以在多个地方使用它 我需要实现这样的目标 for tag in post tags all with tagabs url showtag tag
  • 检查 JObject 中的空或 null JToken

    我有以下 JArray clients JArray clientsParsed objects foreach JObject item in clients Children etc SQL params stuff command P
  • 在 Android 的 Talkback 辅助功能中将缩写或缩写发音为单个字符

    我正在使用对讲来开发语音辅助功能 但是当画外音从文本视图中读取文本时 它将缩写 首字母缩写作为单词而不是单个字符读取 例如 FBI 应该是 F B I 而不是作为单词读出 不要试图强迫屏幕阅读器以某种方式阅读单词或缩写 这可能会扰乱盲文用户
  • 我真的应该将餐桌预订时间保存为 UTC 吗?

    这可能是一个愚蠢的问题 我提前道歉 但考虑到业务背景 我是否真的需要在数据库中以 utc 格式保存餐桌预订时间 并担心将其转换为网络客户端上的本地时间 预订将始终针对特定位置 地理 城市 进行 因此无论当前与 UTC 的时间偏移是什么 夏令
  • 命名循环习语:危险?

    我读过一篇关于 C 中的 命名循环惯用法 的文章 http en wikibooks org wiki More C 2B 2B Idioms Named Loop http en wikibooks org wiki More C 2B
  • 如何绑定和排序集合

    如果我有一个未排序的集合 是否有一种简单的方法来对其进行绑定和排序 我想用 XAML 来做 没有 Linq 没有 C 如果我的 DataContext 有一个属性 例如 MyItems 则很容易对其进行绑定
  • CakePHP TwigView 插件缺少视图错误

    我正在使用 CakePHP 2 4 2 和this https github com predominant TwigView插件由主导 我想将 TwigView 与 CakePHP 一起使用 发现上面的插件与 CakePHP 2 0 兼容
  • C# - System.Timers.Timer 的替代方案,在特定时间调用函数

    我想在特定时间调用 C 应用程序上的特定函数 起初我考虑使用Timer System Time Timer 但很快就变得无法使用 为什么 简单的 Timer 类需要一个Interval以毫秒为单位 但考虑到我可能希望执行该函数 假设在一周内