-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
Environment.Tickcount 오버플로우 질문이에요
22.10.16 21:44 작성 조회수 461
0
public void Push(Action action, int tickAfter = 0)
{
JobTimerElem job;
job.execTick = System.Environment.TickCount + tickAfter;
job.action = action;
lock (_lock)
{
_pq.Push(job);
}
}
public void Flush()
{
while (true)
{
int now = System.Environment.TickCount;
JobTimerElem job;
lock (_lock)
{
if (_pq.Count == 0)
break;
job = _pq.Peek();
if (job.execTick > now)
break;
_pq.Pop();
}
job.action.Invoke();
}
}
만약 현재 TickCount가 int.maxvalue에 근사한 값이라면 job.execTick이 오버플로우가 일어나 현재 시간보다 무조건 낮기 때문에 바로 실행되는 문제가 있을 것 같습니다. 제 생각이 맞을까요?
답변을 작성해보세요.
1
Rookiss
지식공유자2022.10.17
https://learn.microsoft.com/ko-kr/dotnet/api/system.environment.tickcount64?view=net-6.0
1~2주 이상 서버 내리지 않고 운영할 계획 등이라면 TickCount64를 사용하세요
답변 1