Thema: Delphi Mal wieder Threads

Einzelnen Beitrag anzeigen

DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#1

Mal wieder Threads

  Alt 5. Nov 2011, 11:01
Hi,
ich habe nur eine kurze frage. Ich erstelle mit TJvMTThread einen Thread, der über Postmessage mit dem programm redet, um ausgaben zu machen. Leider musste ich feststellen das das öfters mal in die hose geht. Leider weiss ich nicht warum. Ich bekomme nie 2x die gleiche fehler meldung. Aber es sind immer ungültige Pointer. z.b. mal in StrLen oder Minimizename usw.

Ist es besser wenn man Threads wie folgt macht? Weil von da kenne ich das mit dem Postmessage. Oder ist das mit dem Post falsch bei TJvMTThread?

Danke im voraus

Delphi-Quellcode:
const
  THREAD_TERMINATE = $0001;
  THREAD_SUSPEND_RESUME = $0002;
  THREAD_GET_CONTEXT = $0008;
  THREAD_SET_CONTEXT = $0010;
  THREAD_SET_INFORMATION = $0020;
  THREAD_QUERY_INFORMATION = $0040;
  THREAD_SET_THREAD_TOKEN = $0080;
  THREAD_IMPERSONATE = $0100;
  THREAD_DIRECT_IMPERSONATION = $0200;
  THREAD_SET_LIMITED_INFORMATION = $0400;
  THREAD_QUERY_LIMITED_INFORMATION = $0800;
  THREAD_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED or SYNCHRONIZE or $03FF;

function OpenThread(dwDesiredAccess: DWord;
                    bInheritHandle: Bool;
                    dwThreadId: DWord): DWord; stdcall; external 'kernel32.dll';

{##############################################################################}

procedure StartNewThread;
begin
    ThreadHandle:=BeginThread(nil, 0, @MyThread,@MyID, 0, ThreadID);
    if ThreadHandle<>0 then CloseHandle(ThreadHandle);
end; {StartNewThread}
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat