델파이 thread 예제

일반 Delphi 응용 프로그램은 단일 스레드이므로 모든 VCL 개체가 해당 속성에 액세스하고 이 단일 스레드 내에서 메서드를 실행합니다. 응용 프로그램에서 데이터 처리 속도를 높이려면 하나 이상의 보조 스레드를 포함합니다. 함수와 클래스를 함께 붙여 붙일 필요가 없습니다. Zip 파일에 전체 예제를 포함했기 때문에 즉시 작동하는 것을 볼 수 있습니다. 스레드는 일부 스레딩 코드를 작성하고 스레드 및 아웃에 대한 경험을 얻을 때까지 다소 압도적입니다. 이 문서에서는 스레딩 및 동기화 기술을 소개합니다. Windows API 호출을 사용하여 실제로 작동하는 방법을 보여 드리겠습니다. 여러 파일에서 특정 문자열을 검색하는 예제를 작성했습니다. 스레드가 검색할 때 실시간 동기화된 정보가 기본 양식으로 전송됩니다. 물론 데이터는 다른 스레드 나 응용 프로그램에 보낼 수도 있습니다. 더 많이 생각할수록 스레딩의 힘을 더 많이 볼 수 있습니다.

TThread 클래스없이 스레드를 만들 때 항상 SysUtils 단위에서 BeginThread 함수를 사용합니다. 특히 파스칼 함수를 사용 하도록 작성 하 고 CreateThread winapi 호출을 캡슐화 합니다. 자식 스레드가 “ShowMessage”에 대한 호출을 통해 사용자에게 응답을 제시하도록하여 결과를 주 스레드로 다시 전달하는 문제를 옆으로 밟았습니다. 이렇게 하면 기본 VCL 스레드와의 통신이 포함되지 않으며 ShowMessage 호출은 스레드 안전(및 대체)이 되므로 VCL은 계속 유지됩니다. 그 결과, 스레드 할당 할당에 대한 첫 번째 방법을 사용하고 스레드자체를 삭제할 수 있습니다. 그럼에도 불구하고 예제 프로그램은 스레드를 시작할 때 해당 프로시저가 호출됩니다. 기본 프로그램과 병렬로 실행됩니다. 그것을 작성해 봅시다. 다중 스레딩의 또 다른 용도는 동시에 많은 클라이언트에 응답할 수 있는 서버 응용 프로그램일 수 있습니다. 참조? 그것에 아무것도.

이 방법을 사용하면 전역 변수에 미치는 영향에 대해 걱정하지 않고 여러 스레드를 만들 수 있습니다.