Einzelnen Beitrag anzeigen

Benutzerbild von seim
seim

Registriert seit: 11. Nov 2007
83 Beiträge
 
#6

Re: Variable wird im Thread verändert -> auslesen

  Alt 29. Apr 2009, 20:25
Also ich hab mir die Lib. selbst noch einmal angeguckt und durch ne Änderung daran geht's jetz..

Delphi-Quellcode:
procedure TReadpipeThread.Execute;
 var CS_Readdata :TCriticalSection;
begin
  inherited;
  CS_Readdata := TCriticalSection.Create;
      while (WaitForSingleObject(m_pi.hProcess, 1) <> Wait_Object_0) do
      begin
           Synchronize(m_Client.Read_error);
           Synchronize(m_Client.read_output);
          if terminated then break;
      end;
  CS_Readdata.Free;
end;
Das ist die ursprüngliche Dingens wo der Output von PLink abgefragt wird. Das geschieht in der Funktion m_Client.read_output
Was ich jetzt geändert habe ist dieses Synchronize:

Delphi-Quellcode:
procedure TReadpipeThread.Execute;
 var CS_Readdata :TCriticalSection;
begin
  inherited;
  CS_Readdata := TCriticalSection.Create;
      while (WaitForSingleObject(m_pi.hProcess, 1) <> Wait_Object_0) do
      begin
           m_Client.Read_error; //<---
           m_Client.read_output;//<---
          if terminated then break;
      end;
  CS_Readdata.Free;
end;
Kann mir jemand erklären was ich damit verändert hab' und ob sich das evtl. negativ auswirken kann im späteren Verlauf?
  Mit Zitat antworten Zitat