当前位置: 首页 > 知识库问答 >
问题:

如何获得等待的线程。睡眠?

终洛华
2023-03-14

我正在编写一个基于await/sleep范式的网络绑定应用程序。

await Thread.SleepAsync(10000)

我更喜欢这样一个答案,不创建任何额外的线程

共有1个答案

曹高阳
2023-03-14

其他建议启动一个新线程的答案是一个坏主意--根本没有必要这么做。Async/Await的部分作用是减少应用程序所需的线程数。

相反,您应该使用task.delay,它不需要新线程,并且正是为此目的而设计的:

// Execution of the async method will continue one second later, but without
// blocking.
await Task.Delay(1000);
 类似资料:
  • 这里的要点是了解实现等待循环的更有效的解决方案,该循环在每次迭代时轮询条件。通过高效,我的意思是“有效的CPU调度”。 我知道代码中使用的等待条件不是“wakeOne”/“wakeAll”指令中使用的“真正的等待条件”,但我想知道对CPU来说,使用假等待条件是否比睡眠更有效。 这里有2个代码片段,它们做同样的事情:等待某些事情发生。这段代码用于工作线程池。因此,当一个线程等待时,其他线程(或其他一

  • 我想实现这样的事情:用户按下登录按钮,然后标签显示:连接。 0.5秒时间间隔 连接... 0.5秒时间间隔 连接... 等 只是一种视觉效果,表明“引擎盖下”确实发生了什么。 我所得到的并不是我所期望的。我点击按钮,等待1.5秒,然后我得到了“连接…”,缺少前面的两个步骤。 首先,我的类 还有我的class

  • 首先,我没有问与C#相同的问题-线程的替代品。睡眠?,或线程的替代品。睡在C#?。我不认为我使用它是错误的,需要一个真正的替代特定的情况。 在一次代码分析运行中,我看到了一个令人惊讶的违规行为: 线程的用法。睡眠()是设计缺陷的标志。 这一违规行为导致彼得·里奇(Peter Richie)撰写了一篇文章,阐述了为什么这构成了糟糕的设计。 我们都知道线程创建是昂贵的,线程阻塞意味着池中的争用。我们还

  • 问题内容: 在这里,我想每秒钟调用一次“ Log.d”和“ postInvalidate”。但是,当我从LogCat检查它时,似乎循环运行的速度比我希望的要快。为什么这个循环不等待1000ms? 以下是LogCat中的输出。因此,您可以看到它根本没有休眠1秒钟。我也使用了Thread.sleep(在您建议之后) 这是最新的代码。是布尔值,现在是事实。 输出是 问题答案: 您需要类的方法。 使发送此

  • 上面的代码工作得很好,但如果我使用wait而不是thread。sleep I get StaleElementReferenceException异常。这是我使用的流畅等待: 这将找到combobox,但再次对combobox执行任何操作将导致NoTouchElement或statestate异常。所以我也尝试了从combobox中选择值: 这超时和doesnot工作! 我如何才能使这项工作,为什

  • 问题内容: 我正在为我的ubuntu服务器(针对我的多客户端匿名聊天程序)实现一种简单的线程池机制,并且需要使我的工作线程进入睡眠状态,直到需要执行一项工作(以函数指针和参数的形式) 。 我当前的系统即将关闭。我(工人线程正在)问经理是否有工作可用,以及是否有5毫秒没有睡眠。如果存在,请将作业添加到工作队列中并运行该函数。糟糕的循环浪费。 什么我 喜欢 做的是做一个简单的事件性的系统。我正在考虑有