Einzelnen Beitrag anzeigen

gnr82

Registriert seit: 8. Nov 2006
15 Beiträge
 
#10

Re: mehrere Thread-Instanzen

  Alt 11. Okt 2007, 17:18
@Whookie: Die beiden Threads werden schon richtig erzeugt, dass kann ich nachvollziehen, da ich einen überlagerten Constructor hab und der auch 2x aufgerufen wird. Die Threads sollten auch nicht einfach so beendet werden. Der Constructor und das Execute des Threads:
Delphi-Quellcode:
constructor devThread.create(arrid:integer);
 begin
  inherited create(False);

 myid := arrid;

 mycport := TComPort.Create(nil);
 mycport.Port := devicearr[myid].SETTINGS.PORT;
 mycport.BaudRate := devicearr[myid].SETTINGS.BAUD;
 mycport.Parity.Bits := devicearr[myid].SETTINGS.PARITY;
 mycport.StopBits := devicearr[myid].SETTINGS.STOP;
 mycport.DataBits := devicearr[myid].SETTINGS.DATA;
 mycport.FlowControl.FlowControl := devicearr[myid].SETTINGS.FLOW;
 mycport.Events := [evRXChar,evRXFlag];
 mycport.OnAfterOpen := afteropen;
 mycport.OnRxChar := reseive;

 end;

procedure devThread.Execute;
 begin
  { Thread-Code hier einfügen }
  while not terminated do
  begin
  mystate := devicearr[myid].STATE;

  sleep(1);
  end;
 end;
@OlafSt: Der Com-Port wird nicht beim kreieren des Threads geöffnet, daran kann es also nicht liegen.

Wie gesagt: Der constructor Create wird ordentlich gestartet nur wird immer das Execute der zuletzt kreierten Threads durchlaufen.

Das ist alles sehr seltsam ...
  Mit Zitat antworten Zitat