程序的“响应性”听起来是特定于OS的,而不是C++。例如,在MS windows中,程序应该处理窗口事件,如果它停止读取事件队列,windows将在一段时间后声称它“没有响应”。。。虽然该应用程序仍然可以在其代码中执行许多操作,例如,执行一些计算、修改文件或通过网络进行通信,即远离“无响应”。但为了更好地使用操作系统,大多数应用程序都会定期查看队列,让windows知道它们“处于活动状态”,并对操作系统事件做出响应(其中还包括按键/向上事件、窗口大小调整/移动、窗口内容重绘请求等=您确实希望以任何方式在GUI应用程序中定期执行的许多事情),c++,C++" /> 程序的“响应性”听起来是特定于OS的,而不是C++。例如,在MS windows中,程序应该处理窗口事件,如果它停止读取事件队列,windows将在一段时间后声称它“没有响应”。。。虽然该应用程序仍然可以在其代码中执行许多操作,例如,执行一些计算、修改文件或通过网络进行通信,即远离“无响应”。但为了更好地使用操作系统,大多数应用程序都会定期查看队列,让windows知道它们“处于活动状态”,并对操作系统事件做出响应(其中还包括按键/向上事件、窗口大小调整/移动、窗口内容重绘请求等=您确实希望以任何方式在GUI应用程序中定期执行的许多事情),c++,C++" />

如何在C++;然后";“unhang”;信息技术 什么是最好的方式来挂起一个C++程序一定的时间? 在程序中,程序在这个时候没有响应,是否有可能控制程序何时恢复正常? < P>程序的“响应性”听起来是特定于OS的,而不是C++。例如,在MS windows中,程序应该处理窗口事件,如果它停止读取事件队列,windows将在一段时间后声称它“没有响应”。。。虽然该应用程序仍然可以在其代码中执行许多操作,例如,执行一些计算、修改文件或通过网络进行通信,即远离“无响应”。但为了更好地使用操作系统,大多数应用程序都会定期查看队列,让windows知道它们“处于活动状态”,并对操作系统事件做出响应(其中还包括按键/向上事件、窗口大小调整/移动、窗口内容重绘请求等=您确实希望以任何方式在GUI应用程序中定期执行的许多事情)

如何在C++;然后";“unhang”;信息技术 什么是最好的方式来挂起一个C++程序一定的时间? 在程序中,程序在这个时候没有响应,是否有可能控制程序何时恢复正常? < P>程序的“响应性”听起来是特定于OS的,而不是C++。例如,在MS windows中,程序应该处理窗口事件,如果它停止读取事件队列,windows将在一段时间后声称它“没有响应”。。。虽然该应用程序仍然可以在其代码中执行许多操作,例如,执行一些计算、修改文件或通过网络进行通信,即远离“无响应”。但为了更好地使用操作系统,大多数应用程序都会定期查看队列,让windows知道它们“处于活动状态”,并对操作系统事件做出响应(其中还包括按键/向上事件、窗口大小调整/移动、窗口内容重绘请求等=您确实希望以任何方式在GUI应用程序中定期执行的许多事情),c++,C++,因此,问题是,如果你想让你的应用程序以操作系统的方式“无响应”(并继续在后台工作)=然后停止处理特定于操作系统的调用/事件,并在按你的意愿计算你自己的东西时“装死”,或者你只想暂停它的正常操作并“什么都不做”,直到恢复 (编辑:现代操作系统正在使用抢占式多任务处理,为每个正在运行的进程提供一些CPU时间,每隔几微秒/毫秒在它们之间切换,以产生进程同时运行的错觉),因此,如果你不使用类似睡眠的解决方案,只是运行一些循环等待外部信号,如解锁文件或网络数据包,你将白白浪费大量CPU时间,这可能会被其他

因此,问题是,如果你想让你的应用程序以操作系统的方式“无响应”(并继续在后台工作)=然后停止处理特定于操作系统的调用/事件,并在按你的意愿计算你自己的东西时“装死”,或者你只想暂停它的正常操作并“什么都不做”,直到恢复

(编辑:现代操作系统正在使用抢占式多任务处理,为每个正在运行的进程提供一些CPU时间,每隔几微秒/毫秒在它们之间切换,以产生进程同时运行的错觉),因此,如果你不使用类似睡眠的解决方案,只是运行一些循环等待外部信号,如解锁文件或网络数据包,你将白白浪费大量CPU时间,这可能会被其他应用程序使用)

如果你想暂停应用程序,最好的方法是使用
sleep
功能来打发空闲时间,该功能使用最少的系统资源将CPU时间返回操作系统。你仍然可以在一个循环中处理操作系统事件,该循环与1-3秒的睡眠交织在一起,因此操作系统会认为你的应用程序“正在响应”,你甚至可以使用UI暂停/恢复,但你的应用程序使用的CPU时间可以忽略不计

如何向应用程序发送暂停/恢复事件信号取决于您想要使用什么来控制它。您可以使用特定于平台的IPC(进程间通信),或网络数据包、UI按钮、文件系统事件(锁定/解锁特定共享文件以提供进程间同步或数据传递)或操作系统事件(如在android上,您可以侦听操作系统事件,如锁定/解锁用户显示等)

<>这是C++中标准化的(除了<代码>睡眠> /Cuff>函数),我可以给出更详细的答案,而且因为你没有指定任何关于编译器和目标OS的东西,我写了这个一般的聊天聊天答案。

< P>程序的“响应性”听起来是特定于OS的,而不是C++。例如,在MS windows中,程序应该处理窗口事件,如果它停止读取事件队列,windows将在一段时间后声称它“没有响应”。。。虽然该应用程序仍然可以在其代码中执行许多操作,例如,执行一些计算、修改文件或通过网络进行通信,即远离“无响应”。但为了更好地使用操作系统,大多数应用程序都会定期查看队列,让windows知道它们“处于活动状态”,并对操作系统事件做出响应(其中还包括按键/向上事件、窗口大小调整/移动、窗口内容重绘请求等=您确实希望以任何方式在GUI应用程序中定期执行的许多事情)

因此,问题是,如果你想让你的应用程序以操作系统的方式“无响应”(并继续在后台工作)=然后停止处理特定于操作系统的调用/事件,并在按你的意愿计算你自己的东西时“装死”,或者你只想暂停它的正常操作并“什么都不做”,直到恢复

(编辑:现代操作系统正在使用抢占式多任务处理,为每个正在运行的进程提供一些CPU时间,每隔几微秒/毫秒在它们之间切换,以产生进程同时运行的错觉),因此,如果你不使用类似睡眠的解决方案,只是运行一些循环等待外部信号,如解锁文件或网络数据包,你将白白浪费大量CPU时间,这可能会被其他应用程序使用)

如果你想暂停应用程序,最好的方法是使用
sleep
功能来打发空闲时间,该功能使用最少的系统资源将CPU时间返回操作系统。你仍然可以在一个循环中处理操作系统事件,该循环与1-3秒的睡眠交织在一起,因此操作系统会认为你的应用程序“正在响应”,你甚至可以使用UI暂停/恢复,但你的应用程序使用的CPU时间可以忽略不计

如何向应用程序发送暂停/恢复事件信号取决于您想要使用什么来控制它。您可以使用特定于平台的IPC(进程间通信),或网络数据包、UI按钮、文件系统事件(锁定/解锁特定共享文件以提供进程间同步或数据传递)或操作系统事件(如在android上,您可以侦听操作系统事件,如锁定/解锁用户显示等)


<>这是C++中标准化的(除了<代码>睡眠> /Cuff>函数),我可以给出更详细的答案,而且因为你没有指定任何关于编译器和目标OS的东西,所以我写了这个一般的聊天聊天答案。

< p>你可以使用标准的C++线程库。std::this_thread::sleep_for()将允许您在定义的时间内睡眠。这将允许您使用相同的代码在任何平台上实现您的目标

#include <chrono>
#include <thread>
#include <iostream>

int main()
{
    using namespace std::chrono_literals;
    while(true)
    {
        std::cout << "tick\n";
        std::this_thread::sleep_for( 500ms );
    }
    return 0;
}

函数的sleep_导致调用它的线程在定义的时间内休眠。如果该线程是GUI或控制台线程,则它将是无响应的。< /P> < P>可以使用标准的C++线程库。
using namespace std::chrono_literals;