gpt4 book ai didi

C#-关于线程和空闲时间的几个问题

转载 作者:行者123 更新时间:2023-11-30 15:43:59 24 4
gpt4 key购买 nike

我正在尝试学习或整理我一直在收集的点点滴滴,所以我有几个问题:

  1. 我有一个线程在执行操作后休眠 5 小时,现在当该线程休眠时应用程序是否进入空闲状态?它会自动产生 ie 还是我必须调用 thread.Yield()?

  2. 如果您有一个等待用户输入的 wpf 应用程序,它在等待时是否也会进入空闲状态?让我们假设应用程序可能必须等待一整天才能被告知做某事?它在等待时会做什么?它会一直消耗资源,还是只是自动进入等待的空闲状态?

  3. 现在从问题 2 开始,如果 wpf 是 wcf 服务的自托管,wpf 在开始托管后会做什么,它会进入空闲状态吗?那么从问题 2 开始,按钮将用于重置服务,wpf 应用程序将做什么(在您按下按钮之前,如果相同,则不必重复 2 的答案)?

    <

谢谢大家,附言抱歉,为什么问题看起来像真正的考试:-S 他们不是。刚刚完成考试,这就是我所看到的:-S

最佳答案

  1. 如果调用 Thread.Sleep(),线程在休眠时不会使用任何 CPU 资源。 线程将进入空闲状态,应用可能由多个线程组成。

  2. 操作系统让它保持“休眠”状态,直到有消息准备好。 UI 应用程序运行时对 CPU 没有影响(除非您在 UI 线程上使用计时器或其他东西),但是它当然会继续使用内存。

  3. 该服务由另一个线程托管。在消息到达之前,该线程不会使用 CPU 资源。该线程在 C# 中对您不可见 - 但如果您在应用程序运行时打开任务管理器 (Ctrl-Alt-Del),您可以看到为您的应用程序运行的线程数量(您可能必须向其中添加列从任务管理器菜单栏)。另一个有趣的列是“CPU 时间”,它告诉您应用程序对 CPU 的影响。

关于C#-关于线程和空闲时间的几个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6409677/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com