如何称之为C/C++程序而没有结束?

NeD*_*ark 2 c c++ terminology

我的意思是一个基于事件的程序,一个"静态"程序,它不仅可以执行任务,还可以等待事件等,并且在用户手动关闭它之前不会结束.

编辑:我已在下面回答,例如我们每天使用的程序,基于Windows,如Microsoft Word,Firefox等.这类程序叫做什么?怎么可能做那样的事情?

编辑2:我打算单独回复一些答案,但我最好在这里回复.

我想要做的程序就像蜘蛛一样在VPS中作为守护进程工作.当它启动时,它应该看看是否有任务要做.如果是这样,它将生成必要的线程(它也是基于线程的),因此main函数需要基于事件的无限循环.

Tyl*_*nry 11

这些程序通常围绕所谓的" 事件循环 " 编写.

该程序的主要功能通常是在psuedocode中,如下所示:

while (!shouldClose()) {
   Event e = getEvent();
   dispatchEvent(e);
}
Run Code Online (Sandbox Code Playgroud)

其中dispatchEvent函数采用事件e,确定它应该调用哪个函数(一个或多个),然后用该事件的任何参数调用这些功能.

getEvent根据程序的性质,该功能可以是任意数量的东西.对于交互式命令行程序,它可能只是从用户检索和解析一行文本.对于GUI程序,它可能正在等待鼠标点击或来自窗口系统的其他消息.对于网络服务,它可能正在等待传入的数据包.

例如,在GUI程序中,getEvent可能会等待,然后从OS窗口系统接收鼠标单击消息.然后dispatchEvent查看鼠标单击事件,根据单击按钮的坐标确定,然后查找与该按钮对应的对象,并调用buttonObject.clicked().然后执行buttonObject.clicked是负责执行任何代码应该是单击按钮的结果.一旦完成运行,控制将返回到事件循环,并处理下一个事件.

现在,显然,对于GUI程序,这可能会变得相当复杂,因此您通常不会从头开始编写自己的事件循环.相反,程序员经常使用图形框架为您提供这样的循环,然后只填写事件响应代码.对于命令行程序和网络服务,事件处理起来要简单一些,并且通常从头开始编写循环.


Pét*_*rök 5

由于您的描述非常模糊,因此可能意味着以下几点:

如果您提供更多详细信息,我们可以进一步限制可能性.

更新:

像Firefox或Word这样的程序可以称为应用程序.这些通常使用以各种编程语言编写的应用程序框架开发.