DNN 웹 사이트 용 소형 모듈을 쓰고 있습니다. 한 번에 하나의 목록 항목, codebehind에서 목록의 내용으로 <div>
을 n 초마다 업데이트해야합니다. 웹 페이지에 <asp:UpdatePanel>
을 5 초 <asp:Timer>
과 함께 설정했습니다. 페이지가 걸려 끝Codebehind에서 바쁜 대기 중 - dotnetnuke
List<String> dcList1 = new List<string>();
for (int i = 0; i < 10; i++)
dcList1.Add(i.ToString());
while (true)
{
for (int i = 0; i < dcList1.Count; i++)
{
//busy wait
while (flag == 0)
{
;
}
mainDiv.InnerHtml = dcList1[i].ToString();
//reset flag
flag = 0;
}
}
: 내 OnTick()
에서 나는 그럼 난 바쁜 while 루프에서 대기하고 0에서 1로 매번 flag
변경, 나는 <div>
의 내용을 업데이트 1. 전역 변수 flag
설정 결국 DNN은 시간 초과 오류를 발생시킵니다. 전역 변수 flag
을 사용하는 것이 왜 작동하지 않는지 이해하려고합니다. 많이 고마워.
P. while 루프를 제거하고 DateTime.Now
으로 업데이트하면 <div>
이 업데이트되면서 타이머가 올바르게 설정됩니다.
무한 루프가 있습니다. 국기를 업데이트 할 방법이 없습니다. 비동기 포스트 백 여부와 상관없이 각 포스트 백이 페이지 클래스를 새로 작성하므로 플래그 변수가 올바른 인스턴스에 업데이트되지 않습니다. – mason
실제로 두 개의 무한 루프가 있습니다. 'while (true)'는 절대로 깨지지 않을 것이고, 명시 적으로'break; '를 호출해야만한다. – mason
'while (true)'에서 빠져 나올 필요가 없다. 오래 동안 페이지가 열려 있습니다. – user3505003