Thema: Delphi Thread in Objekt starten

Einzelnen Beitrag anzeigen

Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Thread in Objekt starten

  Alt 28. Jul 2008, 11:26
Auf der Suche nach dem Fehler sehe ich meinen Verdacht bestätigt:
Es handelt sich um einen Service. Ich versuche daher den Fehler mit MessageBoxes einzugrenzen, doch verschwindet oder verändert sich der Fehler wenn ich mit meinen Nachrichten näher komme!!!
Beispielsweise habe ich bei Socketoperationen öfter den Fehler "Socket operation on nonsocket." bekommen. Nachdem ich mir Infos über entsprechende Sockethandles hab ausgeben lassen hats funktioniert:
Delphi-Quellcode:
...
//So gehts:
activeComSockets := ComSockets;
MessageBox(0, PChar('Debug 4.5: '+ IntToStr(activeComSockets.fd_count)), 'JIS', MB_SERVICE_NOTIFICATION);
timeout.tv_usec := 100;
if select(0, @activeComSockets, nil, nil, @timeout) = SOCKET_ERROR then
  HandleError
...
Delphi-Quellcode:
...
//So nicht:
activeComSockets := ComSockets;
timeout.tv_usec := 100;
if select(0, @activeComSockets, nil, nil, @timeout) = SOCKET_ERROR then
  HandleError
...
Lustigerweise handelt es sich bei allen Variablen im Codeausschnitt um lokale Variablen der procedure ListenThread. Das ganze tritt an mehreren Stellen in dieser Form auf.

Frage: Wieso so komische Fehler und wie bekomme ich den Thread vernünftig ans laufen?
Jan
  Mit Zitat antworten Zitat