나는를보고 루프를 통해 WebClient.DownloadString
을 호출하여 웹 사이트를 다운로드했다. 나는 사용자가 물건을 다운로드하는 도중에 취소 할 수있는 옵션을 원했기 때문에 CancellationPending
이 루프 중간에 있었을 때마다 CancelAsync
라고했다.어떻게 BackgroundWorker를 일시 중지 할 수 있습니까? 또는 이와 비슷한 것
하지만 지금은 DownloadString
이라는 기능이 일부 얼어 붙어서 DownloadStringAsync
(이 모든 것은 BackgroundWorker
으로 생성 된 다른 스레드 내부) 대신 사용하기로 결정했습니다. 그리고 나는 루프와 함수를 호출하여 호출 한 후에 루프와 함수를 끝내야하므로 루프를 만들었지 만 아무 것도하지 않고 변수를 확인한 후에 while 루프를 만들었습니다. bool Stop
DownloadStringCompleted
이벤트 핸들러가 호출되거나 사용자가 작업 취소를 요청한 경우
이상한 점은 디버그 버전에서 잘 작동한다는 것입니다. 하지만 릴리스 1에서는 프로그램이 주 스레드 인 것처럼 while 루프에서 멈 춥니 다.
WaitHandle은 완벽하게 작동합니다. 고맙습니다! – Juan
백그라운드 작업자의 일시 중지/다시 시작 루프 http://stackoverflow.com/questions/8359058/pause-resume-loop-in-background-worker –