윈도우 응용 프로그램을 제작한다면 여러 쓰레드에서 동시다발적으로 중복 실행이 되는 것을 경험 했을겁니다. 이 현상을 해결하기 위해서 전역변수에 사용중임을 기록해서 선택하는 방법이 존재합니다. 즉 쉽게 이해하기 설명하면 이렇습니다. [ 화장실 사용중 ] 이라는 팻말을 화장실 문앞에 걸어놓으면 화장실을 들어가려는 모든 사람들이 그 팻말을 보고 사용중이구나 하며 기다리거나 다른곳을 가게되죠. 만약 화장실 사용중인데 그 사람이 볼일을 바 본 후 팻말을 돌리지 않고 나가면 어떤일이 벌어질까요? 그 부분을 자동으로 해결해주는 알고리즘입니다. c# webBrowser_DocumentCompleted 함수에서 사용하면 골치 아픈 중복을 피할 수 있습니다. ————————————————————————————– public bool 한번만실행 { get; set; } private bool 단한번만실행_몇초후에복구(int second) { if (한번만실행) { timer_몇초후설정복구.Interval = 1000 * second; timer_몇초후설정복구.Start(); 한번만실행 = false; return true; } return false; } private void timer_몇초후설정복구_Tick(object sender, EventArgs e) { 한번만실행 = true; } ————————————————————————————— <<사용방법>> private void webBrowser_검색자동분석_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { if (단한번만실행_몇초후에복구(2)){ // 실행할 스크립트 // 단 한번만 실행됩니다. } } ————————————————————————————— 자 그럼 문제를 하나 내보죠! 이 함수는 어디에 사용되고 있을까요?^^
원문: 네이버 블로그에서 보기