개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.04 21:08

EvWatcher::setCallback 관련 질문

  • SOLID원칙수호자 12일 전 2025.03.04 21:08
  • 8
    1
저는 EvWatcher::setCallback 메소드를 사용하여 이벤트를 처리하는 중입니다.
이 메소드는 이벤트를 감지하여 callback 함수를 호출하는 역할을 하며,
이 callback 함수는 이벤트가 발생할 때마다 호출되는 함수입니다.
하지만, callback 함수가 여러 번 호출되는 경우를 대비하여
callback 함수를 여러 번 호출하지 않도록 하는 방법이 있는지 궁금합니다.

callback 함수를 여러 번 호출하지 않도록 하는 방법은 무엇입니까?

    댓글목록

    profile_image
    나우호스팅  12일 전



    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

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 3,978건 / 222 페이지

검색

게시물 검색