SendQueue.UnprocessedFuncCount 질문입니다

데이터를 읽어오는 로직이 있습니다

비동기함수를 SendQueue.Enqueue를 하고
while (SendQueue.UnprocessedFuncCount > 0)
으로 코루틴에서 반복문 조건을 걸어서 요청사항이 모두 처리되었는지 판단하는 로직이 있는데요

SendQueue.Enqueue(데이터요청1);
~
SendQueue.Enqueue(데이터요청20);
SendQueue.Enqueue(차트요청);

이런 순서입니다

근데 차트요청을 끝내기도 전에 while (SendQueue.UnprocessedFuncCount > 0) 조건문을 통과해버려서
인게임에 진입할때는 차트데이터가 없어서 오류가 나는 현상이 있습니다

만약에 SendQueue의 남은 요청이 하나뿐일때(SendQueue.UnprocessedFuncCoun가 1일때)

업데이트문에서 Poll()이 돌아서
큐에서 요청을 꺼내니까 UnprocessedFuncCount는 0이되고
꺼낸 요청을 이 때 수행하게 되나요?

위의 시나리오가 맞다면

마지막 요청의 서버처리가 정상적으로 끝나기도 전에 조건문 패스가되니 여러 상황에서 문제가 있을 것 같습니다.

로그도 찍어봤는데 실제로 SendQueue.UnprocessedFuncCount를 패스하고 마지막 요청이 처리되고요

현재는 마지막 요청이 처리가되면 bool변수같은걸 true로 해서 true가 되는 순간
조건문을 패스하는 방법밖에 생각이 안나는데

이를 자연스럽게 처리할 방법이 있을까요?

안녕하세요 개발자님,
마지막 Enqueue 된 함수가 호출되어야만 하는 것이라면,
순서대로 호출이 이루어질테니 마지막 함수의 콜백 성공 시 인게임으로 넘어가는 로직을 구성해주시는 방법을 추천드립니다.

좋아요 1