데이터를 읽어오는 로직이 있습니다
비동기함수를 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가 되는 순간
조건문을 패스하는 방법밖에 생각이 안나는데
이를 자연스럽게 처리할 방법이 있을까요?