.net thread.sleep 不准确

2023-12-08

我快疯了!! 我通过 gsm 发送音频,根据语音规范,我必须发送语音数据包,然后等待 20 毫秒才能获得正常语音。我使用system.threading.thread.sleep(20)。但是,我注意到声音很慢。但是当我运行另一个不同的应用程序时,声音变得正常。

经过一些调试,我发现 system.Threading.Thread.Sleep(20) 需要 31 毫秒,但如果我运行另一个不同的应用程序,Thread.Sleep (20) 将始终是准确的。

我可以使用哪些其他替代方法来使线程准确地休眠 20 毫秒,同时不影响 PC 性能。

谢谢,


Sleep(20)表示睡眠至少 20 毫秒。基本上,它会挂起线程并且不会在指定的延迟内恢复调度。之后线程仍然需要被调度才能真正恢复运行。取决于正在运行的其他线程,可能会立即运行,也可能稍后运行。这里没有任何保证。

The 文档指出这一点:

系统时钟以称为时钟分辨率的特定速率滴答。实际超时可能不完全是指定的超时, 因为 指定的超时将被调整以与时钟滴答一致。 有关时钟分辨率和等待时间的更多信息,请参阅 睡眠功能主题。该方法调用 Sleep 函数 Windows 系统 API。

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

.net thread.sleep 不准确 的相关文章

  • 使用 std::mutex 实现类的交换

    假设我们有一个class with a std mutex class Foo std mutex mutex std string str other members etc public friend void swap Foo lhs
  • 具有“繁忙”线程的 threadPoolExecutor 如何被终止?

    我的问题有点复杂 让我尝试彻底解释一下 但如果您需要更多详细信息 请随时询问我 我会添加它们 我最近 通过实验 了解到 如果线程连续工作 例如 while true 循环中的整数运算 则中断线程对其没有影响 话题继续进行 就像什么都没发生一
  • Spring MVC 应用程序可以是多线程的,即使它的 servlet 不是吗?

    当您谈论 Spring 应用程序是多线程时 您是否一定是指该应用程序中定义的 servlet 是否是多线程的 或者即使应用程序中的 servlet 不是多线程 Spring 应用程序也可以配置为多线程吗 不再支持单线程 servlet 它们
  • 如何使 PLINQ 在 .NET 4.0 beta 2 中产生更多并发线程?

    在以前版本的并行扩展中 您可以设置线程数 enumerable AsParallel numberOfThreads 但现在这种超载不再可用 现在该怎么做呢 在新版本中 您可以使用扩展方法 WithDegreeOfParallelism i
  • 在 Windows 上使用的 Subversion Server

    哪种 Subversion SVN Server 会建议新手开始使用 Windows Server 操作系统 我想我将在客户端上使用 TortoiseSVN 并且主要进行 NET 开发 UPDATE 很好的建议 我根据投票选择我的答案 我会
  • 使用反应式扩展对事件进行单元测试

    我在用着 NET 的反应式扩展 Rx http msdn microsoft com en us devlabs ee794896 aspx将事件公开为IObservable
  • C# 可以为控制台应用程序部分类“程序”类吗?

    我想知道是否可以将为任何控制台应用程序创建的默认 程序 类更改为部分类 我想这样做是因为我想要更好的组织 而不是将所有方法都放在按区域分类的 1 个文件中 对我来说 将某些方法类别放在单独的文件中会更有意义 我对分部类的理解是 它是多个文件
  • .NET 中是否有与 WinAPI GetColorDirectory 等效的函数?

    有没有类似的函数GetColorDirectory http msdn microsoft com en us library windows desktop dd316928 28v vs 85 29 aspx 或者我应该通过 DLL 调
  • 双击定时器事件

    我正在开发一个应用程序 将用户的眼球运动与光标运动映射起来 从而开发一个免提光标控制系统 我正在使用 Open CV 库的 NET Wrapper for C 即 Emgu CV 进行开发 我被困在想要打开文件 文件夹的地方 这样当光标放在
  • 如何将具有固定模式的值数组反序列化为强类型数据类?

    我在找出一种干净的 尽可能 方法来以特定格式反序列化某些 JSON 数据时遇到了一些麻烦 我想将数据反序列化为强类型数据对象类 对于具体细节非常灵活 以下是数据的示例 timestamp 1473730993 total players 9
  • 如何使 MSBuild 在引用的项目中正确跟踪使用外部工具生成的文件?

    我有 MSBuild 代码 它使用特定的构建操作来获取文件 CompileFoo在此示例中 并生成输出文件 具有不同的扩展名 这是我到目前为止的代码
  • 如何检查DLL文件是否已注册?

    如何以编程方式查找用 C 编写的 DLL 文件是否已注册 我已经尝试过这段代码 但它没有成功 如果我注册一个 DLL 文件并使用此代码进行检查 它将返回 如果我取消注册它并运行同一段代码 它会再次返回 true 我将 DLL 文件的完整路径
  • 如何在 VB.Net winforms 应用程序中找到 main() 入口点?

    当我用 C 创建 WinForms 应用程序时 输出类型为Windows Application我得到一个program cs with a static void Main 我可以用它来处理命令行参数等 但是 当我为 VB 创建等效项目时
  • 如何检测线程是否被IO阻塞?

    在Java中 线程可以有不同的状态 新的 可运行的 阻塞的 等待的 TIMED WAITING 的 终止的 然而 当线程被IO阻塞时 其状态为 RUNNABLE 如何判断是否被IO阻塞 NEW 线程已创建但尚未处理 可运行 线程正在占用CP
  • 将授权放在服务层而不是Web API层

    我正在使用 NET Core Web API 构建 REST API 我的控制器只是将请求转发到服务层并返回结果 HttpPost nameof Create public async Task
  • 简单的 C++ 线程

    我正在尝试在 C Win32 中创建一个线程来运行一个简单的方法 我是 C 线程的新手 但对 C 中的线程非常熟悉 这是我想做的一些伪代码 static void MyMethod int data RunStuff data void R
  • .NET ListView列顺序问题

    我在表单中遇到问题 我已按以下顺序将列添加到 NET ListView 控件 A B C D A D 列的显示索引按顺序为 0 3 但它们的显示顺序错误 A B D C these are switched at runtime 注意 一切
  • 增加超时时间

    我必须增加超时时间 以下是我的代码 Private Function GetConnectionInstance As SqlConnection Dim objConn As SqlConnection Dim strConnection
  • NUnit 测试运行顺序

    默认情况下 nunit 测试按字母顺序运行 有谁知道有什么方法可以设置执行顺序吗 是否存在这样的属性 我只是想指出 虽然大多数受访者认为这些是单元测试 但问题并没有具体说明它们是 nUnit 是一个很棒的工具 可用于各种测试情况 我可以看到
  • NuGet 解决包依赖项的错误版本

    所以我有一个包 NServiceBus Host 依赖于 NServiceBus gt 4 5 0 在 nuget 上有一个 4 5 1 版本的 NServiceBus 当我安装包 NServiceBus Host 时 我得到 PM gt

随机推荐

  • add()、replace() 和 addToBackStack() 之间的区别

    调用这些方法的主要区别是什么 fragmentTransaction addToBackStack name fragmentTransaction replace containerViewId fragment tag fragment
  • 如何使用 AnkhSVN 2.x 更改存储库 url

    我正在 VS 2008 上使用 Ankh v2 0 5250 202 连接到我的 Subersion 服务器 VisualSVN 服务器 1 6 3 我的存储库的当前网址是https svnserver 8443 svn foo foo t
  • 错误:“std::cout”中的“operator<<”不匹配

    我意识到此错误通常是由于某些语法或类型问题造成的 但我不确定如何解决此问题 我认为这可能与 findRt 的类型有关 vector
  • 如何用 C++ 从文件中读取单词?

    所以我觉得很无聊 决定制作一款刽子手游戏 我在高中第一次学习 C 时就做过这样的作业 但这是在我接触几何之前 所以不幸的是我在任何方面都没有做得很好 学期结束后我一怒之下把所有东西都扔掉了 我想要制作一个txt文档 然后输入一大堆单词 IE
  • Java 关闭挂钩

    使用 IntelliJ IDE java 1 8 IDE 中的 lang level 6 以及命令提示符下的默认值 从命令行 Windows 7 编译并运行 javac cp Main java java cp Main 给出以下代码 我想
  • 在 Fine Uploader 中,如何编辑/更新先前会话中上传的文件的 S3 文件元数据?

    我有一个要求 用户需要编辑 更新在之前的会话中上传的 s3 文件元数据 我已经实现了初始文件列表 但我需要使文件元数据 文件名 标题 在我的情况下是新字段 在显示列表中可编辑 能实现吗 I see 编辑文件功能 但这仅限于文件上传之前 看来
  • 使用绑定和 AJAX 下拉

    我是 ColdFusion 的新手 刚刚开始学习 Ajax 我的问题是 我在网上发现了一些很酷的编码来实现两个下拉菜单 其中第二个菜单取决于第一个菜单中选择的内容 但目标是从选择查询中提取下拉列表中的所有值 我正在使用我刚刚了解到的绑定功能
  • 在python3中输出十六进制值

    我正在使用 python3 编写 shellcode 漏洞 但是 当我尝试输出一些十六进制字节时 例如使用线路 python3 c print x8c xxd 中的值xxd is c28c 而不是预期的8c python2中不会出现这个问题
  • 为什么在添加元素以设置映射多对多时,休眠会从连接表中删除行?

    假设我有两个课程 class A Set b bs class B 这个映射 b
  • Java——创建一个新线程

    我是线程新手 我想创建一些与主线程分开工作的简单函数 但这似乎不起作用 我只想创建新线程并独立于主线程上发生的事情在那里做一些事情 这段代码可能看起来很奇怪 但到目前为止我对线程还没有太多经验 你能解释一下这有什么问题吗 public st
  • 检查属性是否存在

    是否可以检查是否存在使用魔术设置器设置的属性 class Test private vars public function set key value this gt vars key value public function get
  • Java 中向上转换的问题?

    有人可以解释一下为什么会发生这种情况吗 class Apple String type setType System out println inside apple class this type apple class RedApple
  • Android Robotium:单击/启动另一个活动后如何返回到正在测试的活动

    我的 Robotium 测试有问题 在我的一项活动 A 中 我单击了一个按钮 单击此按钮会启动另一个活动 B 因此 在我的 robotsium 测试中 我有这样的内容 Button myBtn Button solo getView R i
  • 从条件格式语句中计算彩色单元格的数量

    所以我今天重新回顾一下昨天的事情 多列vlookup条件格式 使用 Scott Holtzman 提供的条件格式声明 一切都按预期运行 感谢 Scott 现在我遇到了一个小问题 我需要根据背景颜色对各个单元格进行计数 并将其显示在另一张纸中
  • php preg_replace 匹配

    如何将 preg replace 中的匹配项作为可用变量访问 这是我的示例代码
  • 为什么我们不能将数组传递给可以使用 &array[0] 的函数

    void fun int array int main int array 1 2 3 fun array gt 1 error in this line return 0 error cannot convert int 3 to int
  • 导入隐式转换而不使用 SparkSession 实例

    我的 Spark 代码中充满了这样的代码 object Transformations def selectI df DataFrame DataFrame needed to use to generate ColumnName impo
  • 类声明之间的区别

    我看到一些关于这个主题的类似问题 但我想确定一下 所以我问 有什么区别 class MyClass pass and class MyClass pass 另外 这两者之间有区别吗 class MyClass pass class MyCl
  • 什么是递归以及何时应该使用它?

    Locked 这个问题及其答案是locked因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 邮件列表和在线讨论中似乎经常出现的主题之一是获得计算机科学学位的优点 或缺乏优点 对于消极方来说 似乎一次又一次出现的一个论点是
  • .net thread.sleep 不准确

    我快疯了 我通过 gsm 发送音频 根据语音规范 我必须发送语音数据包 然后等待 20 毫秒才能获得正常语音 我使用system threading thread sleep 20 但是 我注意到声音很慢 但是当我运行另一个不同的应用程序时