현재주기적인 무거운 데이터 관리를 수행하는 백그라운드 스레드가 있습니다. 프로세스가 끝날 때 Thread.Sleep()
을 호출하고 루프의 맨 위로 돌아가서 반복합니다.Thread.Sleep() 도용 디버거 포커스
이것은 모두 완벽하게 작동하며 나머지 소프트웨어에 대해서는 슬픔이나 성능 문제가 발생하지 않습니다. 버그가있는 유일한 방법은 디버거를 내 메인 스레드의 현재 위치로 이동하지 않고 깨뜨린 경우 Thread.Sleep()
에 의해 도난 당해 대신 나를 데려 간다는 것입니다.
디버거가 해당 줄에서 멈추는 것을 막을 수있는 방법이 있습니까? 아니면 스레드를 절전 모드로 전환하는 다른 방법이 있습니까?
미리 감사드립니다.
감사를 참조
을 수행 할 때 또한 그들을 녹여 기억 d는 이전에 그것에 대해 생각했지만 속성만을위한 것이라고 생각했습니다. 어쩌면 나는'Thread.Sleep()'로 내 입장을 다시 생각해야한다. Timer가 작동하는 최선의 방법이라고 생각하지 않습니다. 메서드를 예약하는 .NET 2.0 방법이 있습니까? –Thread.Sleep()
를 사용하여 선호하는 옆으로 타이머 (두 가지가 있습니다) 또는 자동 리셋 이벤트를 사용으로좋아, 이제는 내 BgWorker를 마쳤고, 다음과 같이 사용했다 :'TimerCallback tc = new TimerCallback (bw.RunWorkerAsync); System.Threading.Timer t = new System.Threading.Timer (tc, null, Interval, Timeout.Infinite);' –