MessageBox 가 표시되는 동안 스레드를 대기키시기

안녕하세요.
WPF로 다운로더를 개발하다가, 스레드 대기와 관련한 궁금증이 생겨 질문합니다.

  • 목표

    • 프로그램을 실행되고 다운로드가 진행되는 중, 사용자가 취소 버튼을 누른다면 MessageBox 창이 표시되며 한번 더 확인합니다. (i.g. “다운로드 진행중입니다. 정말 다운로드를 취소하겠습니까?”)
    • MessageBox가 사용자의 예/아니오 를 입력 받을 동안, 다운로드는 일시정지 상태가 됩니다. (= MessageBox가 표시될 동안 다운로드가 계속 진행되어 프로그램이 완료되면 안됩니다.)
  • 질문

    • 다운로드 중 ‘취소’ 버튼을 눌렀을 때, 다운로드가 중단되려면 취소버튼 클릭 이벤트가 다운로드 스레드를 중단시켜야 한다고 생각하는데요. 한 스레드가 다른 스레드를 정지시킬 수 있나요?
    • 위의 방법이 아니라면, 해당 상황에 맞는 좋은 방법이 있는지 궁금합니다…
좋아요 2

image
해당관련해서 내용은 잘 모르겠지만 참조하시면 좋을 것 같아요
WPF 스레드 문서

좋아요 3

질문하신 내용하고 비슷한 질문이 stackoverflow에 있는것 같습니다. 한번 확인해보시길 바랍니다.

좋아요 3

지금 당장 개인적인 생각으로는

“다운로드가 진행되는 중” ← 이 처리가 어떻게 되고 있는지가 중요 할 것 같은데

단순하게 닷넷의 BCL인 WebClient 클래스나 HttpClient로 다운로드 작업을 한다면 일단 불가능 할 것으로 생각되어집니다.

왜냐면 BCL로 제공되는 다운로드 관련 클래스들은 “다운로드 일시정지” 제공 메서드가 없거든요

즉 요 문제는 스레드 문제라기 보단 download pause resume 기능 구현이 먼저 선행 되어야 할 것 같습니다.

스레드 중지나 대기 요점이 아닌
download pause resume 기능으로 봐야 할 것 같고

저게 구현 되면 별도 스레드로 pause 및 resume 호출을 해주면 원하는 목표로 갈 수 있을 것 같습니다.

좋아요 4