메인 애플리케이션의 스레드에 데이터를 전달하는 방법은 무엇입니까?데이터 (구조)를 스레드로 메시지로 전달하는 방법.
주 응용 프로그램에서 오류 메시지 처리를위한 스레드를 만들었습니다. 주 응용 프로그램에서 오류가있는 경우 데이터를 처리하는 동안 오류 메시지가 생성되어 구조에 채워집니다. 이 오류 메시지 (구조)를 스레드로 전달해야 스레드가 스레드를 처리하고 주 응용 프로그램이 계속 작업해야합니다. Windows 플랫폼에서 C에서이 작업을 수행하려고합니다.
내 응용 프로그램에는 스레드가 하나만 실행됩니다. 지금은 전역 변수 구조 (myData)를 정의했으며이를 전달하는 데 PostThreadMessage를 사용했습니다. 주요 응용 프로그램에서
struct myData errorData;
내가 그것을 잘 작동되는 순간
MsgReturn = GetMessage(&msg, NULL, THRD_MESSAGE_SOMEWORK, THRD_MESSAGE_EXIT);
이 스레드에서
PostThreadMessage(ErrorLogId, THRD_MESSAGE_EXIT , 0 , (LPARAM)&errorData);
를 사용하여 메시지를 게시 할 수 있습니다. 그러나 오류 메시지 처리에 시간이 더 걸리는 경우, 메인 애플리케이션은 새로운 오류를 가져오고 글로벌 구조체 인 errorData에서 데이터를 업데이트 할 수 있습니다.
잠금 메커니즘을 사용할 수는 있지만 스레드가 처리를 마칠 때까지 주 응용 프로그램을 중단 할 수 없습니다. 데이터를 전역 변수로 사용하지 않고 데이터를 전달하는 방법은 무엇입니까?