나는 현재 진행 콘솔에 소리와 결국 작별 메시지와 함께 종료, 내 하드 드라이브에 비동기 적으로 파일을 다운로드합니다 다음 코드를 가지고 있는지,하지만, 내가 궁금콘솔 응용 프로그램에서 비동기 작업이 끝날 때까지 기다릴 때 Thread.Sleep (Int32.MaxValue)을 피하는 방법은 무엇입니까?
webClient.DownloadProgressChanged.Add(fun args ->
if (currentPercentage < args.ProgressPercentage) then
Console.WriteLine(args.ProgressPercentage.ToString() + "%")
currentPercentage <- args.ProgressPercentage
)
webClient.DownloadFileCompleted.Add(fun args ->
Console.WriteLine("Download finished!")
Environment.Exit 0
)
webClient.DownloadFileAsync(new Uri(url_to_download), file_name)
Thread.Sleep Int32.MaxValue
을 Environment.Exit()
을 통해 프로그램을 끝내면서 주 스레드에서 "영원히자는"에 의지하지 않고도이를 달성 할 수있는 더 우아한 방법이있을 수 있습니다. 나는 Environment.Exit()
을 사용하는 편견이 없지만 가능하면 그것을 피하고 싶습니다! 이 문제를 피할 수있는 유일한 방법은 새 스레드를 생성 한 다음 죽을 때까지 기다리는 것이지만 성가신 것처럼 보입니다. 이 작업을 수행하는 간단한 방법은 무엇입니까?
이 [C#을] 또는 태그 있어야하는데 [# F] ? – Aaronaught
당신이 옳습니다. C#이어야한다. ( –
동기 동작을 원한다면 왜 동기 버전'DownloadFile'을 사용하지 않는가? –