Hallo Zusammen!
Folgendes Problem...
Ich habe einen Systemdienst und eine Anwendung...
Der Systemdienst holt sich einen
Mutex mit:
PutterMutex := CreateMutex(nil, true, PutterMutexName);
Die Anwendung wartet mit:
Delphi-Quellcode:
PutterMutex := CreateMutex(nil, false, PutterMutexName);
repeat
if WaitForSingleObject(PutterMutex, 30000)=WAIT_OBJECT_0 then
begin
// HoleShared Memory
// ... Tuwas
ReleaseMutex(PutterMutex) // Signal Anwendung hats abgeholt
end;
Until ...
Der Service hat jetzt eine Schleife:
Delphi-Quellcode:
for y:=0 to Yanz-1 do
for x:= 0 to Xanz-1 do
begin
// Belege Shared Memory
ReleaseMutex(PutterMutex); // Signal DataDa, ich war owner
if WaitForSingleObject(PutterMutex, 20000)<>WAIT_OBJECT_0 then // Warte auf Abgeholt...
result := false;
end;
Soweit so gut...
Das Funktioniert auch im Prinzip, jedoch erhalte ich auf der Seite der Application nicht alle Werte aller
Schleifendurchläufe... Sondern nur (Für X z.B. 0,2,4,6,8 ) Es wird also nur jeder 2. Übergeben..
Dies ist jedoch nicht regelmäßig manchmal funktionieren auch aufeinanderfolgende... Aber eher selten...
Wo liegt mein Fehler?
Grüsse Frank