응용 프로그램이 시작될 때 세 개의 스레드를 생성하고 이러한 스레드가 응용 프로그램 수명 동안 계속 실행되는 다중 스레드 응용 프로그램을 구축하고 있습니다. 모든 스레드는 독점적이며 어쨌든 서로 간섭하지 않습니다. 이제는 사용자가 응용 프로그램을 일시 중단 할 수 있습니다. 여기서 스레드를 일시 중단하거나 말하려합니다.멀티 스레드 응용 프로그램에 대한 개선 된 접근 방법 제안
현재 전경 스레드로 스레드를 생성하고 있지만 백그라운드 스레드로 변경하면 어쨌든 내 응용 프로그램에 영향을 미치지 않을 것입니다. (끝내기 전까지는 포 그라운드 스레드가 응용 프로그램을 유지할 것입니다.)
저는 여기에 사람들에게 thread.suspend() 또는 thread.abort()를 통해 응용 프로그램을 일시 중단하는 방법을 제안 할 것을 요청합니다. 나는 thread.suspend가 쓸모없고 위험하다는 것을 알고 있지만, 어떤 유형의 동기화도 사용하지 않고있는 곳에서도 내 애플리케이션에 해로울 수 있습니다.
추신 : 내 스레드가 매분마다 내장 데이터베이스 (sqlite)에서 데이터를 저장하고 &에 검색 중입니다.
응용 프로그램을 사용하는 동안 대부분의 시간 동안 컴퓨터가 잠자기 상태가 된 다음 잠에서 깨어 나면 다시 잠자기 상태가됩니다. 이 프로세스는 응용 프로그램이 일시적으로 일시 중단되거나 영구적으로 로그 아웃 될 때까지 계속됩니다. 그러나 사용자가 응용 프로그램을 일시 중단 또는 로그 아웃하면 즉시 스레드를 종료하고 싶습니다. 뮤텍스 (Mutex)를 사용하거나 핸들을 기다려서이 작업을 수행 할 수 있다고 생각하십니까? 그렇다면,이 멀티 스레딩 작업을 시작한 이래로 정교함 (단지 겸손한 요청)을 부탁해주십시오. 감사합니다. – madcap
아니요, 가능하지 않지만 실제로 스레드를 _destroy_해야합니까, 아니면 단지 스레드가 처리를 중단하고 싶습니까? 대답은 대개 스레드에 필요한 리소스 (즉, 큰 개체를 메모리에 유지)에 따라 달라집니다. – dbemerlin
글쎄, 사용자가 일시 중지 된 다음 스레드가 다시 실행되기를 원할 때 스레드가 일시적으로 일시 중지되기를 원합니다. 사용자는 내 스레드를 중단하려는 응용 프로그램에서 로그 아웃 할 수도 있습니다. 내가 현재하고있는 것은 두 경우 모두 스레드를 중단한다는 것입니다. – madcap