私のクラスでは、CreateThread(NULL,0,Execute1,this...)
メソッドを使用してスレッドを作成します。
DWORD WINAPI Execute1(LPVOID lpParam) {
CoInitialize(NULL);
CVC1Dlg *pdlg=(CVC1Dlg *) lpParam;
次に、このスレッドから pdlg メソッドを呼び出します。
pdlg->someMethod();
このスレッドからこのメソッドを呼び出すと、このメソッドが同時にメイン スレッドから呼び出された場合、どうなりますか? ミューテックスのような同期方法を使用する必要がありますか? そして、ミューテックスを呼び出す必要がある正確な場所はどこですか?
CVC1Dlg メソッドで使用する必要があるというのは正しいですか? このようなもの:
CVC1Dlg ::CVC1Dlg () {
g_hMutex=CreateMutex(...)
}
void CVC1Dlg ::setStatus(int aStatus) {
::WaitForSingleObject(g_hMutex, INFINITE);
iStatus=aStatus;
::ReleaseMutex(g_hMutex);
}