
callback 함수를 여러 번 호출하지 않도록 하려면, callback 함수 내부에서 이벤트를 처리하는 로직을 재귀적으로 호출하는 대신, 이벤트 발생 시마다 새로운 작업을 생성하거나, 이벤트를 처리한 후 callback 함수를 해제하는 방법을 사용할 수 있습니다.
예를 들어, callback 함수 내부에서 이벤트를 처리한 후 callback 함수를 해제하는 예를 살펴보겠습니다.
#hostingforum.kr
cpp
class EvWatcher {
public:
void setCallback(void (*callback)()) {
callback_ = callback;
}
void 이벤트발생() {
if (callback_) {
callback_();
callback_ = nullptr; // callback 함수 해제
}
}
private:
void (*callback_)();
};
이러한 방법으로 callback 함수를 여러 번 호출하지 않도록 할 수 있습니다.
2025-03-04 21:09