草庐IT

sleep_durations

全部标签

windows - 是否需要在 CPU 上安排等待 Windows 事件的线程从 sleep 中唤醒?

最好用一个例子来描述我的问题:我们通过CreateEvent创建一个Windows事件句柄,manualReset为FALSE。我们创建了4个线程。确保它们都开始运行并等待WaitForSingleObject的上述事件。在主线程中,在for循环中,我们通过SetEvent向该事件发出4次信号。比如:for(inti=0;i我的问题是,我们可以说所有这4个线程一定会从等待此事件中唤醒吗?根据我对WindowsEvent的理解,答案是肯定的。因为当事件被设置时,总是有一个线程在等待它。但是,我在MSDN上读到“设置已设置的事件无效”。由于等待线程可能没有机会在循环中主线程设置事件时运行。

c++ - Linux/windows sleep 时间

是否可以检查(在bash/python/C++中)在系统(Linux/Windows)中还有多少时间可以进入休眠状态-我需要它来创建在linux和windows上工作的双重程序,以防止一个人进入休眠状态在另一个模式上工作时(通过TCP)。不,我不能只是延长系统时间进入休眠状态——因为如果我离开办公table,计算机必须进入休眠状态(或者更确切地说进入阻塞模式——或者不管它叫什么——它们只需要通过密码来阻止——安全问题)。 最佳答案 对于Windows:SetThreadExecutionState会告诉系统不要进入休眠模式,它也可以

.net - 在 .NET 控制台应用程序中,防止 Windows sleep /休眠

我正在尝试编写一个.NET控制台应用程序,它按顺序从Web下载文件列表。该程序基本上有效。问题是Windows的省电sleep机制会中断下载。SetThreadExecutionState方法似乎在控制台应用程序中不起作用?usingSystem.Runtime.InteropServices;usingSystem.Net;publicstaticclassUtility{[DllImport("kernel32.dll",CharSet=CharSet.Auto,SetLastError=true)]publicstaticexternThreadExecutionStateSet

windows - 为什么 time::Duration 的纳秒值在 Windows 上被降低到最接近的 100 的倍数?

在Windows1064位上运行以下程序时:usestd::time::{Duration,UNIX_EPOCH};fnmain(){letd=Duration::new(4660,22136);lett=UNIX_EPOCH+d;letd2=t.duration_since(UNIX_EPOCH).unwrap();println!("d:{:?}",d);println!("d2:{:?}",d2);}为什么纳秒值会下限到最接近的100的倍数?d:Duration{secs:4660,nanos:22136}d2:Duration{secs:4660,nanos:22100}Win

c - sleep ()功能不起作用?

我在Windows上的Code::Blocks中使用GNUGCC编译器。为什么sleep(seconds)在这里不起作用?我已经使用库尝试过它并且工作正常。谢谢。编辑:“不起作用”是指无法编译。对不起。#include#include#includeintmain(intargc,char*argv[]){char*c=(char*)malloc(sizeof(char)*50);if(--argc>0){printf("POTATO:\n");while(argc>=1){printf("-%s\n",argv[argc]);sleep(10);argc--;}printf("\n"

c++ - n>0 的 Sleep(n) 是否将 CPU 时间放弃给其他线程

在windows下使用VC++13,联机帮助指出使用Sleep(0)会将当前线程时间片的剩余部分放弃给具有同等优先级的任何其他线程。其他值也是如此吗?例如如果我使用Sleep(1000),则当前线程运行的内核有1000毫秒的CPU时间可能会被另一个线程使用?我想这是特定于硬件和实现的,因此为了缩小范围,假设是IntelI5或更好的Windows7或8。问的原因是我有一个线程池类,我正在使用一个额外的监视器线程来报告进度,允许用户中止长进程等... 最佳答案 是的,零只有在表示没有最短等待时间的情况下才具有特殊含义。通常它可以被解释为

c++ - 如何将 SleepEx 与可警告的 true 和总体最短 sleep 时间一起使用?

我有以下用例:我当前的线程需要执行operation1,等待一段时间与其他线程协调,然后需要执行操作2。在等待之间,由于文件系统事件,APC可能需要由该线程处理,这会将另一个operation1添加到某个队列中,以便在operation2完成后稍后处理当前线程。像下面这样简单的东西:while(true){processOperation1;SleepEx(...,true);processOperation2;}重要的是,在operation1和operation2之间至少要经过指定的SleepEx时间!这不需要在一个整体中,线程可以立即用于处理APC和排队另一个operation1

windows - 为什么 Sleep(1) 的 sleep 时间在 Windows 中似乎是可变的?

上周我需要测试一些不同的算法功能,为了让自己更轻松,我添加了一些人工sleep并简单地测量了时钟时间。像这样:start=clock();for(inti=0;i由于Sleep的参数以毫秒为单位表示,我预计总挂钟时间约为10秒(由于算法的缘故要高很多,但现在这并不重要),这确实是我的结果。今天早上,由于新的MicrosoftWindows修补程序,我不得不重新启动我的PC,令我惊讶的是,Sleep(1)不再需要1毫秒,而是大约0.0156秒。所以我的测试结果完全搞砸了,因为总时间从10秒增加到大约156秒。我们在多台PC上对此进行了测试,显然在某些PC上,一次sleep的结果确实是1毫

windows - 批量关机命令表现得像 sleep 命令,如何解决?

我在本网站其他帖子的帮助下结合我所掌握的初学者知识创建了这个批处理文件。它的目的是在设定的时间后关闭或休眠计算机,这样我就可以让它完成任务而无需在它完成后整夜运行。问题是,如果我运行shutdown命令,它似乎会关机,但当打开时会恢复所有打开的应用程序,有时无法正常启动。(例如,需要1-2次开机才能真正开机,而不是稍后再次关机。)运行全新安装的Windows10homex64这是我对该文件的完整代码:@echooffcolor3Fmodecon:cols=52lines=5echoMinutesuntilevent?set/pmin=set/asec="min*60"echoShutd

Windows C++ 和微秒 sleep 的可能性

Windows环境中是否有休眠~1微秒的方法?在研究和阅读了许多线程和各种网站之后,我无法看到这是可能的。由于调度程序似乎是限制因素并且它运行在1毫秒的水平上,那么我相信如果不进入实时操作系统就无法完成。 最佳答案 它可能不是最便携的,我自己也没有使用过这些功能,但可以使用此链接和block的高分辨率计时器部分中的信息:QueryPerformanceCounter 关于WindowsC++和微秒sleep的可能性,我们在StackOverflow上找到一个类似的问题: