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? 的相关文章

  • Windows Phone 8.1 XAML 应用程序显示奇怪的版本

    我已经为我现有的应用程序之一创建了 Windows Phone 8 1 XAML 版本 我将包版本设置为1 5 0 0 创建的文件名为SlovakApps WindowsPhone 1 5 0 1 AnyCPU bundle appxupl
  • jquery中元素+ ID vs 只有ID?

    div some id将扫描整个 DOM 中的所有 div some id将直接从 DOM 获取 ID 那么哪个更快呢 div some id or some id See 优化选择器 https learn jquery com perf
  • Powershell/PowerCLI 循环、超时和退出

    以下是场景 我通过 Powershell PowerCLI VMwares Powershell 模块 远程启动虚拟机 一旦虚拟机启动 我将针对虚拟机运行一系列 cmdlet 目前我有这段代码 Start VM my VM Name run
  • 了解编译器如何在初始化中使用普通的 {}-list

    考虑以下玩具代码 class Y public Y int int cout lt lt Y ctor n class X public X initializer list
  • 如何测试具有多个输入调用的循环?

    我正在尝试测试一个依赖多个用户输入来返回某个值的函数 我已经在这里寻找了多个答案 但没有一个能够解决我的问题 我看到了参数化 模拟和猴子补丁的东西 但没有任何帮助 我认为很大程度上是因为我没有清楚地理解正在做的事情背后的概念 并且我无法适应
  • 大师系统要求

    我们将使用 Virtuoso 来存储 RDF 三重计数一开始将为 1 亿 我需要知道典型的 RAM CPU 磁盘等应该是什么 查询将使用 SPARQL 并且查询会有点复杂 请提供您的意见 Virtuoso 版本 6 x 三元组 四元组 的平
  • 为什么我使用的 KnownType 属性是错误的?

    我正在尝试反序列化来自 google api 的 json 响应 所以我想我应该定义几个类来帮助它 DataContract public class DetectionResult ResponseData DataMember Name
  • 计算串行通信的块校验字符 (BCC)

    我通过 NET 的 SerialPort 类通过串行与设备进行通信 并且根据第三方设备规范要求 我需要计算 块检查字符 我被告知的唯一信息是 这是一个异或运算 XOR 并且必须对所有角色执行 那么 如果我有字符串 Bob 001 将如何计算
  • pthread_join() 中的阻塞

    根据手册页 pthread join 函数应暂停调用的执行 线程直到目标线程终止 除非目标线程 已经终止了 因此 据我了解 调用进程将阻塞 直到指定的线程退出 现在考虑以下代码 pthread t thrs NUMTHREADS for i
  • 如何将 C# 6 与网站项目类型一起使用?

    更新了现有的Web Site项目类型Visual Studio 2015 我将Framework更改为4 6 然后我希望在我的代码隐藏文件中可以使用所有这些新功能 不幸的是我收到如下错误 错误 CS8026 功能 表达式主体属性 在 C 5
  • 登录成功后身份服务器不重定向

    我正在尝试使用 MVC 客户端设置 IdentityServer4 一切工作正常 直到我想添加 ASP 身份 当我添加代码来使用 SQL Server 和 Identity 时 成功登录后 Identity 服务器不会将我重定向回客户端 而
  • CTAD 可以在模板类的成员内部使用吗?

    C 有一个有用的功能 即模板参数隐含在模板类内的代码中A 然而 对于建筑来说 这似乎与 CTAD 发生冲突 如何让 CTAD 优先 例如 这里有一个错误f会员因为A被解释为A
  • 从一个 numpy 数组中删除另一个 numpy 数组中的元素的有效方法

    从一个 numpy 数组中删除另一个数组中的元素的最佳方法是什么 本质上我是在追求np delete 其中数组的顺序并不重要 import numpy as np a np array 2 1 3 print a b np array 4
  • Web API 获取多部分/表单数据响应的最简单方法

    我有问题 但我看不到我做错了什么 我想用最简单的方法来让它工作 稍后我会让它变得更复杂 但目前只想命中 post 方法 我什至不关心里面的代码当前是否正在工作 我唯一关心的是它会发回 OK 200 回复 目前 我要么收到内部服务器错误 50
  • 按顺序范围循环映射

    我正在寻找一种确定的方法来范围Go map为了 Go 规范 https golang org ref spec For statements陈述如下 映射的迭代顺序未指定 并且不保证从一次迭代到下一次迭代的顺序相同 如果在迭代过程中删除尚未
  • OneDrive上传/下载到指定目录

    我正在尝试使用 Live SDK v5 6 在我的 Windows Phone 8 1 Silverlight 应用程序中包含 OneDrive 的备份 恢复 我可以读 写标准的 me skydrive 目录 但我在寻找上传 下载到指定目录
  • 理解 htonl() 和 ntohl()

    我正在尝试使用 unix 套接字来测试向本地主机发送一些 udp 数据包 据我了解 当设置 ip 地址和端口以发送数据包时 我会填写我的sockaddr in将值转换为网络字节顺序 我在 OSX 上 我很惊讶这个 printf ntohl
  • 在 C 中释放 NULL 指针是一个好习惯吗? [复制]

    这个问题在这里已经有答案了 可能的重复 ptr 为 NULL 的 free ptr 是否会损坏内存 https stackoverflow com questions 1938735 does freeptr where ptr is nu
  • C# 按键枚举混淆:Keys.Alt 或 Keys.RButton |键.Shift键|按键.Alt

    我正在尝试测试是否按下了 Alt 键 我有一张类似于以下的支票 private void ProcessCmdKey Keys keyData if keyData Keys Alt System Console WriteLine Alt
  • C++ 中的编译器指令重新排序优化(以及阻碍它们的因素)

    我已将代码缩减为以下内容 这在保留我感兴趣的编译器输出的同时 尽可能简单 void foo const uint64 t used uint64 t ar 100 for int i 0 i lt 100 i ar i some globa

随机推荐

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

    我正在尝试查看设计库中是否存在任何内置动画来创建浮动操作按钮 并将其转换为单个材料表 如材料设计图像中所示 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 它将停止一个计时器并启动另外两个计时器 一个连续 另一个自动停止 如