2011-10-15 7 views
3

다운로더 응용 프로그램이 있습니다. 응용 프로그램에는 두 개의 스레드가 있습니다. 모든 UI가 포함 된 주 스레드입니다. 다른 스레드가 파일을 다운로드하는 데 사용됩니다.NSThread 일시 중지 및 다시 시작

창에는 3 개의 버튼이 있습니다. 다운로드를 시작 - 다운로드 취소 다운로드 를 시작하려면 - 다운로드에게 나는 다음과 같은 코드를 사용하여 다운로드 스레드를 생성 한

을 취소하려면

[NSThread detachNewThreadSelector:@selector(StartDownload) toTarget:self withObject:nil]; 

기능은 "다운로드를 일시 정지"에 사용자가 클릭 버튼, 메시지 상자가있을 때처럼 "사용자가 다운로드를 취소 하시겠습니까 (Y/N)?"라고 묻는 사용자에게 을 표시했습니다. 이 시점에서 & 다운로드를 일시 중지해야합니다. 다운로드를 취소하겠다고 말하면 다운로드를 다시 시작하겠습니다.

문제는 사용자가 메시지 상자에 응답하는 데 걸리는 시간을 모릅니다.

어떻게 이런 종류의 작업을 일시 중지합니까 & NSThread로 이력서를 보냅니 까? 사전에

감사합니다, 하기 Vaibhav

답변

0

당신은 표준 유닉스 수면()와 usleep를 사용할 수는()를 호출합니다. 또는 NSThread 클래스 메서드 [NSThread sleepForTimeInterval:]을 사용할 수도 있습니다. 이 메소드는, 지정된 시간 간격으로 thread를 sleeve합니다.

+ (void)sleepForTimeInterval:(NSTimeInterval)ti 

메시지와 함께 시간을 표시 할 수 있습니다. 1 분 후에 다운로드가 취소됩니다. 또는 일부 카운터를 표시하십시오. 참고 : 스레드가 차단되어있는 동안 실행 루프 처리가 발생하지 않습니다.

관련 문제