C# 程序占用太多CPU?

2024-04-04

我有一个程序,它在启动时不断地在 3 个独立的计时器之间切换。

我的应用程序的主线程有一个 while 循环,它不断检查全局变量是否已设置为 true,如果设置为 true,它将停止一个计时器并启动另外两个计时器 - 一个连续,另一个自动停止(如果不是)无论出于何种原因,我都没有命令停止。

这个 while 循环的条件是 (1==1),因此它会永远运行。

在任务管理器 (XP) 中,我看到我的程序在或多或少空闲的系统上使用了 50% 的 cpu。

有没有办法通过降低 while 循环的速度或其他方法来减少这个数字?

Thanks.


有没有办法通过降低 while 循环的速度或其他方法来减少这个数字?

只需停止执行繁忙的循环即可。有更好的方法来协调线程之间的事件。考虑使用Monitor.Wait/Pulse, or AutoResetEvent / ManualResetEvent。基本上,设置全局变量的线程应该发出信号表明它已完成。或者,如果你的主线程不执行anything否则,为什么不添加一个普通的 C# 事件,以便每当变量更改时,都会引发该事件并采取适当的操作?

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

C# 程序占用太多CPU? 的相关文章

随机推荐

  • 如何创建浮动操作按钮转变成单张材料

    我正在尝试查看设计库中是否存在任何内置动画来创建浮动操作按钮 并将其转换为单个材料表 如材料设计图像中所示 https material design storage googleapis com publish material v 4
  • Android:访问硬件相机预览帧数据而不绘制它们

    根据 Java SDK 端的 android 相机文档 必须为相机预览帧提供一个要绘制的 可见且活动的 表面 以便访问帧数据 我已经链接了我在这里遇到的一些内容 我是新人 所以最多有 2 个超链接 但是在最终在这里发布我自己的问题之前 我查
  • Heroku DATABASE_URL 作为 Maven 的 JDBC Url

    我在 Heroku 上的应用程序使用 DATABASE URL 使用 Java 将其解析为带有用户名和密码的 JDBC URL 很简单 那里没有问题 但是 我有一个带有 Maven 插件的 JOOQ 生成器和 Flyway 迁移器 但我不知
  • 如何使用 CodeIgniter ACL 库?

    如何实现 ACL 库 对用户角色使用 ACL 的最佳方法是什么 在标准 PHP 中 我会编写如下代码 if userTypeId Admin hello Admin else if userTypeId Member hello membe
  • 创建 ManagedCertificate 会导致“状态:FailedNotVisible”

    使用 Kubernetes 1 12 6 gke 7 或更高版本 可以创建一个 ManagedCertificate 然后从将服务暴露到互联网的入口资源中引用该证书 运行 kubectl describe Managedcertificat
  • 我可以检查 CoInitialize 是否已被调用吗?

    在具有ADO数据库连接的多线程环境中 我想知道CoInitialize是否已被调用 我该如何检查这个 通常你不应该做这个检查而只是打电话CoInitialize CoUnInitialize一对 你仍然可以这样做 function IsCo
  • 条码字段长度

    我正在写一些考勤软件 每个会员都会有一张带有条形码的身份证 他们将用它来登录活动 条形码字段在我的数据库中应该有多长 我想要接受 Code 39 和 Code 128 条形码 我知道这些是可变长度代码 那么我应该将最大长度设置为多少 Tha
  • 将方法指针转换为整数,然后调用它

    我想知道以下是否可能 如果可以 怎么办 请代码示例 如何储存一个指向对象方法的指针 as an 整数值 如何将该整数值转换回 方法指针 以及call it 我想要做的是将 方法指针 存储在 TComponent 派生对象的整数标记值中 然后
  • 如何确认SQL注入

    有什么方法可以确认特定的安全漏洞是通过 SQL 注入完成的吗 这里没有简单的方法 但是如果您启用了用于记录每个 SQL 语句的 SQL 服务器 这就是我要做的 通常 当我在某处进行 SQL 注入时 我会在结束前一个字符串后使用其中一个作为始
  • 如何在Fragment中实现缩放捏合手势

    我用过 ScaleGestureDetector 我使用了这段代码 但它在片段中不起作用 而且也没有显示任何错误 请任何人都可以帮助我解决这个问题 提前致谢 但是当我在活动中使用相同的代码时它工作得很好 public class Fragm
  • 如何使用 Groovy 获取 Jenkins 当前构建项目的具体信息?

    在 Jenkins Hudson 中 在 Postbuild Groovy 脚本的帮助下 我想获得以下其中一项 环境变量 例如当前的 JOB NAME BUILD NUMBER 等 当前项目的特定版本号的结果 当前项目中最后一次不成功构建的
  • 在 Node.js 数据流中通过换行获取块

    有一次我认为你可以告诉 Node js 子进程按换行符对数据进行分块 如下所示 子进程的 stderr 数据事件针对字符和单词而不是行触发 理想情况下 我可以传递一个标志来告诉流仅在一行数据准备就绪时触发数据事件 难道就没有办法做到这一点吗
  • Android - 即使应用程序被终止或设备重新启动,也会在后台运行服务

    我想保持服务在后台运行 即使我的应用程序被终止 我在用着android intent action USER PRESENT事件 但该服务仅在屏幕解锁时运行 我试过android intent action BOOT COMPLETED但下
  • Android 悬浮窗

    我想制作一个红色的覆盖窗口 你可以在下面看到我的代码 当我单击按钮时它不执行任何操作 哪里有问题 我怎样才能解决这个问题 请提出建议 谢谢你 public class MainActivity extends AppCompatActivi
  • 如何针对发布版本 APK 运行 Android/Robotium Instrumentation 测试用例?

    我有一个 Android 项目设置及其纯Java在PC上运行的单元测试项目 在模拟器上运行的功能 集成测试项目 这两个人利用InstrumentationTestCase2测试用例以及 Robotium 框架 我可以从 Eclipse 中运
  • 在詹金斯中找不到 hudson*.groovy

    我正在尝试使用 groovy 脚本配置 jenkins 作业 我不知道我的配置做错了什么 我什至无法执行一个简单的 groovy 命令 例如 println System getenv PATH 当詹金斯尝试构建时 它显示以下堆栈跟踪 然后
  • 新的 C++ 返回语法是否受到限制?

    我开始了一个新的私人项目并决定使用更多C 11 https en wikipedia org wiki C 2B 2B11 14 https en wikipedia org wiki C 2B 2B14这次 所以我也开始使用新的返回语法
  • ' aria-label='错误 F# - c# 异步调用:将 Threading.Tasks.Task 转换为 Async<'a>'> 错误 F# - c# 异步调用:将 Threading.Tasks.Task 转换为 Async<'a>

    当我尝试从 F 代码调用 C 库中的异步方法时 我收到以下编译错误 该表达式原本应具有 Async 类型 但此处具有 Threading Thread Tasks Task 类型 SendMessageAsync位于 C 库中并返回Thre
  • 类型错误:尝试在 Express JS 中使用 Mustache 时,this.engine 不是函数

    作为我在 NodeJS 上尝试的第一件事 我正在构建一个简单的应用程序 它显示一个 HTML 页面 告诉访问者他们的 IP 地址 它看起来是这样的 var express require express var app express ap
  • C# 程序占用太多CPU?

    我有一个程序 它在启动时不断地在 3 个独立的计时器之间切换 我的应用程序的主线程有一个 while 循环 它不断检查全局变量是否已设置为 true 如果设置为 true 它将停止一个计时器并启动另外两个计时器 一个连续 另一个自动停止 如