Einzelnen Beitrag anzeigen

Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#6

Re: Zugriff auf Objekte von Thread aus - Synchronize erforde

  Alt 16. Sep 2008, 14:10
gut, soweit so gut. ich habe mich nun etwas in das thema eingelesen, nru verstehe ich glaub einiges noch nicht ganz so richtig...

annahme: ich habe den haupt-thread und einen anderen - dies ist ja auch zwei andere beliebige threads anwendbar. beim haupt-hread habe ich ein objekt, welches auf die datenbank zugreift (klasse tdatabase). im anderen thread habe ich eine referenz auf dieses objekt. wenn ich nun beim "normalen" thread eine sql-anweisung mache, dann sollte diese ja innerhalb von critical sections stehen, da es sonst zu problemen kommen kann, nur wie implementiere ich das?

könntet ihr mir im folgenden quellcode sagen, wo ich die critical section einfügen muss?!? ich kann das ja als lokale (als innerhalb der Methode machen) variable definieren, in der tdatabase-klasse oder in der tmainthread-klasse!? was ist die lösung?
Delphi-Quellcode:
TMainThread = class(TThread)
private
  FDatabase : TDatabase;
public
  procedure execSQL();
end;

procedure TMainThread.execSQL();
begin
  FDatabase.execSQL('SELECT...');
  row := FDatabase.getDataFromRow(0);
  { ... }
end;

TSecondThread = class(TThread)
private
  FDatabase : TDatabase;
public
  procedure execSQL();
end;

procedure TSecondThread.execSQL();
begin
  FDatabase.execSQL('SELECT...');
  row := FDatabase.getDataFromRow(0);
  { ... }
end;
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat