2010-05-19 3 views
3

사용자가 키를 눌러 중지 할 때까지 실행해야하는 일정 검사기가 있습니다. 다음과 같이이 일에C# 사용자가 A 키를 누를 때까지 반복되는 프로세스 반복

내 생각은 다음과 같습니다

  1. 사용자는 프로세스가 Console.ReadLine()를 실행하지 않을 경우
  2. 프로세스는 10 초마다
  3. 를 실행하는 프로세스를 시작합니다; 사용자에게 "q"키를 눌러 프로세스를 중지 할 수있는 옵션을 제공합니다.

내 접근 방식은 사용자가 프로세스가 완료되기까지 완료 될 때까지 기다려야한다는 것을 제외하면 괜찮습니다. 사용자 입력을 처리하는 동시에 프로세스를 실행할 수있는 방법이 있습니까?

답변

3

일정 작업을 수행하는 프로세스를 별도의 스레드에서 실행할 수 있습니다. 그런 다음 주 스레드는 항상 사용자 입력에 응답 할 수 있습니다. 반면에 다른 프로세스가 실행 중일 때 종료 할 수 없으면 최종 결과는 전혀 다를 수 없습니다. 전체 응용 프로그램은 해당 프로세스가 완료 될 때까지 중지 할 수 없습니다. 하지만 언제든지 다른 프로세스를 종료 할 수 있다면 여러 개의 스레드가 잘 작동 할 것입니다.

+0

마크 이것은 훌륭합니다. 이 멀티 스레딩 주제를 자세히 살펴보고 유용하게 사용할 수있는 솔루션을 만들 것입니다. – sooprise

+0

Console.KeyAvailable을 사용하면 간단한 대답을 얻을 수 있습니다. http://stackoverflow.com/questions/11647486/checking-if-any-key-pressed-in-console-application-c-sharp – RedGreenCode

관련 문제