如果硬盘灯还一直闪,说明在处理,我一般的 *** 作是继续等待,千万不要着急,进行其他增加系统工作负担的 *** 作,比如继续打开窗口啥的。。。。更慢。。。
不过一般等待30秒-1分钟,如果超出一般经验时间或者你的期望时间太多,你可以选择关闭程序————推荐方法是Ctrl+Alt+delete,进入任务管理器-“进程”窗口-选择相关进程文件,结束进程,90%可以解决问题,最好不要直接在“应用程序”窗口来终止程序,很容易死机。
让当前线程休眠
try {Threadsleep(1000);
} catch (InterruptedException e1) {
//捕获异常
e1printStackTrace();
}
//线程休眠1000毫秒(1秒)后
使用线程睡眠:Sleep(1000)
线程可以调用Sleep函数使其在指定时间内不被调度:
VOID Sleep(DWORD dwMilliseconds);
Sleep调用会挂起当前线程,dwMilliseconds毫秒之后再将其恢复为可调度的。Sleep函数有以下几点值得注意:Sleep调用会导致当前线程放弃其剩余的时间片
Sleep调用时,系统挂起当前线程的时长大约是dwMilliseconds毫秒——比如,当dwMilliseconds设置为100时,在大多数情况下,当前线程睡眠的时长并不会是100ms,可能是几百毫秒、几秒、几分钟甚至更长。因为Windows并不是一个实时系统,所以dwMilliseconds只是一个建议值
为dwMilliseconds传递INFINITE会使当前线程永远睡眠,这通常没什么用处
为dwMilliseconds传递0时,当前线程会放弃剩余的时间片,系统会尝试调度优先级等于或高于当前线程 的可调度线程,如果没有找到这样的线程,系统将马上重新调度调用Sleep的线程
切换:SwitchToThread
当前线程可以调用SwitchToThread强迫 *** 作系统调度另外的可调度线程(如果存在):
BOOL SwitchToThread();当前线程调用SwitchToThread时,系统会检查是否存在可调度的线程处于“饥饿”状态,如果没有找到,SwitchToThread立刻返回,系统继续执行当前线程,否则系统将暂停当前线程并调度处于“饥饿”状态的线程(无论该线程的优先级大小),“饥饿”线程的调度时间大约是一个时间片,然后系统调度将恢复正常。当线程A需要获得某资源,而该资源又被另一优先级较低的线程B占用时,A可以调用SwitchToThread迫使 *** 作系统调度低先级的进程,以期待B释放被占用的资源。当没有其它线程可调度时,SwitchToThread返回FALSE,否则返回一个非0值。SwitchToThread函数和Sleep(0)调用类似,不同之处在于SwitchToThread允许系统调度优先级低于当前线程的可调度线程,但Sleep(0)只允许调度优先级不低于当前线程的可调度线程。
以上就是关于电脑程序未响应是等待还是关闭这种情况怎么处理全部的内容,包括:电脑程序未响应是等待还是关闭这种情况怎么处理、java中怎么让程序等待一会、在c++中如何让程序等待一秒后才运行下面的语句等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)