센드큐 취소하는 방법이 있나요?

고객님의 문의에 답변하는 직원은 고객 여러분의 가족 중 한 사람일 수 있습니다.
고객의 언어폭력(비하, 조롱, 욕설, 협박, 성희롱 등)으로부터 직원을 보호하기 위해
관련 법에 따라 수사기관에 필요한 조치를 요구할 수 있으며, 형법에 의해 처벌 대상이 될 수 있습니다.

커뮤니티 이용 정책에 위배되는 게시물을 작성할 경우, 별도 안내 없이 게시물 삭제 또는 커뮤니티 이용이 제한될 수 있습니다.

문의 응대 : 평일 오전 10시 ~ 오후 6시
문의를 남기실 경우 다음 항목을 작성해 주세요.
정보가 부족하거나 응대시간 외 문의하는 경우 확인 및 답변이 지연될 수 있습니다.

  • 뒤끝 SDK 버전 : 5.15.1
  • 프로젝트명 : 캐슬 TD
  • 스테이터스 코드 :
  • 에러 코드 :
  • 에러 메시지 :

안녕하세요!

센드큐를 취소하는 방법이 있을까요?

안녕하세요 개발자님,
StopSendQueue() 를 통해 취소가 가능합니다.
관련하여서는 개발자 문서 내 상세히 안내되어있으니 확인하여 이용해 주시면 감사하겠습니다.

안녕하세요 :slight_smile:

설명해주신데로 테스트를 해보았습니다.

그런데 StopSendQueue()를 통해 취소를 해보았지만 취소 직전에 실행한 Enqueue()가 성공하여 값이 변경되었습니다.

제가 처리하려고 하는 로직은 StopSendQueue()으로 SendQueue를 취소하고 동기로 값을 변경합니다. 그리고 SendQueue가 다시 필요해지면 StartSendQueue()로 재시작해서 사용하려고 합니다.

참고로 제가 테스트한 방법은 유니티 에디터에서 위에 방법으로 테스트하였습니다.

개발자님, 추가로 문의하신 내용 답변드립니다.
SendQueue가 비어 있을 때 Enqueue를 수행하면 해당 프레임에 즉시 큐가 실행됩니다.
예를 들어, 5개의 작업을 큐에 등록한 뒤 바로 StopSendQueue를 호출하더라도,
첫 번째로 등록된 작업은 실행되기 때문에 취소되지 않고, 뒤에 등록된 4개의 작업만 취소됩니다.
또한 실행 중인 큐를 중간에 중지하더라도, 이미 실행된 작업은 취소되지 않습니다.
대신, Queue에서 대기 중인 작업들이 모두 제거되는 형태로 작업이 취소됩니다.
따라서 StopSendQueue를 호출한 이후에도 StartSendQueue를 다시 호출할 필요 없이,
Enqueue를 등록하면 큐가 다시 실행됩니다.

이해됐습니다.

답변 감사합니다 :slight_smile:

좋아요 1