WaitForSingleObject() Problem

fh_study

Erfahrenes Mitglied
Hallo,

habe ein Problem mit WaitForSingleObject(). Aus einem Thread heraus sollen 3 weitere Threads gestartet werden -> das läuft soweit. Der Thread der die anderen 3 startet braucht jedoch deren Ergebnisse. Also nehme ich die Funktion WaitForSingleObject(). Dazu habe ich ein Event welches ich in der "Haupt-Klasse" folgendermaßen definiert habe:
Code:
CEvent* ReadyStoneOut
...
void CMyGameView::OnInitialUpdate()
{
	CFormView::OnInitialUpdate();
	GetParentFrame()->RecalcLayout();
	ResizeParentToFit();
	ReadyStoneOut = new CEvent (true, true, NULL, NULL);
	MyStartSettings();
}
Nachdem alle 3 Threads durchgelaufen sind, wird mit ReadyStoneOut->SetEvent() das event gesetzt. Der erste Thread "wartet" mit WaitForSingleObject(pView->ReadyStoneOut, 2000) auf das Ergebnis. Das Programm bricht aber mit einer Meldung, dass es nicht aus dem Speicher lesen kann ab,
warum
 
Hallo,

versuch es mal mit "CEvent ReadyStoneOut;" anstelle von "CEvent* ReadyStoneOut;"
( also keinen Zeiger benutzen )
 
Habe 2 verschiedene Events zu beobachten, deswegen die Zeiger. So kann ich jedes Event einzeln setzen. Wenn ich keinen Zeiger habe, wie sage ich dann welches Event gesetzt/verändert werden soll?
 
Ohh, da müsstest du jetzt viel lesen...

aber zum Glück hat sich das Problem gerade erledigt. Hatte 2 Fehler drin
1.
Code:
//2 Events müssen auch 2 mal initialisiert werden also:
ReadyStoneOut = new CEvent (true, true, NULL, NULL);
ReadyStoneOutPossible = new CEvent (true, true, NULL, NULL);
2.
Code:
//ein Zeiger muss ja auch auf etwas zeigen, also nicht
WaitForSingleObject(pView->ReadyStoneOut, INFINITE);
//sondern
WaitForSingleObject(pView->ReadyStoneOut->m_hObject, INFINITE);

aber trotzdem Danke für die Hilfe!
 
Zurück