任何人都可以用C ++解释事件处理吗?

时间:2010-02-01 21:18:39

标签: c++ xcode event-handling

我应该提一下,我使用的是Mac OS X,XCode。

当缓冲区写入文件时,它会生成一个事件,告诉gui从文件中读取数据。

我不确定在这种情况下我需要什么样的事件?是否可以在不使用事件的情况下完成?

谢谢。

2 个答案:

答案 0 :(得分:1)

C ++中的事件处理主要包括异常和信号。有关如何处理这些内容的详细信息,请参阅规范或Stroustrup的书籍中的最佳描述。

其他事件处理(例如鼠标单击,中断和信号量)由OS处理。不同的操作系统具有不同的API并设置处理事件的要求。许多多线程和多任务操作系统允许程序在事件发生之前进入休眠状态(例如设置信号量,生成信号或发送消息)。

完成写入文件后,您需要让您的程序或线程信号 GUI。 Signal 由您的操作系统或GUI框架定义。

仅供参考,在大多数设计中,缓冲区不会写入文件。程序,任务或执行线程将缓冲区写入文件。对文件进行缓冲区写入可能会产生比线程将缓冲区写入文件更多的信令或上下文切换。

答案 1 :(得分:-1)

没有事件就可以,但是你需要进行民意调查。看看boost :: asio。这是为了网络,但我听说你可以写文件,并在完成后让它为你调用一个函数。 (当然是异步的)。还有boost :: signals2,你可以使用线程,当写线程完成时使用信号来调用“写完成函数”。您甚至可以使用信号,使用boost :: bind传递文件名或句柄,以便显示重要信息。