ROBOTION

c# webBrowser DocumentCompleted 에서 중복을 방지해줍니다.

윈도우 응용 프로그램을 제작한다면 여러 쓰레드에서 동시다발적으로 중복 실행이 되는 것을 경험 했을겁니다.   이 현상을 해결하기 위해서 전역변수에 사용중임을 기록해서 선택하는 방법이 존재합니다.   즉 쉽게 이해하기 설명하면 이렇습니다.   [ 화장실 사용중 ] 이라는 팻말을 화장실 문앞에 걸어놓으면 화장실을 들어가려는 모든 사람들이 그 팻말을 보고 사용중이구나 하며 기다리거나 다른곳을 가게되죠.   만약 화장실 사용중인데 그 사람이 볼일을 바 본 후 팻말을 돌리지 않고 나가면 어떤일이 벌어질까요?   그 부분을 자동으로 해결해주는 알고리즘입니다.   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)){    // 실행할 스크립트    // 단 한번만 실행됩니다. } }       —————————————————————————————   자 그럼 문제를 하나 내보죠!   이 함수는 어디에 사용되고 있을까요?^^        

원문: 네이버 블로그에서 보기