![]() |
Threads
Hey Leute, kann mir aml jemand erklären, wie ich einen Thread erstelle? und was ich dabei beachten muss? ich möchte das TTHread object in Delphi nutzen, habe mir auch schon die Hilfe und ein Tutorial angeschaut, aber irgendwie werde ich daraus nicht schlau! Ich möchte eine externe Funktion (aus einer DLL) in einen Thread auslagern, da diese sonst mein Programm und auch die Messages in Delphi blockiert...Bitte um Hilfe
|
Re: Threads
Schau dir mal das Thread Demo (Vergkleich von 3 Sortieralgorythmen) an, was bei Delphi dabei ist.
|
Re: Threads
hab ich auch schon, aber wenn ich ehrlich bin, ist das ein wenig kompliziert, da ich auf diesem Gebiet noch neu bin, ich möchte nur einen einzige Funktion auslagern, und nach deren Ablauf den Thread beenden
|
Re: Threads
|
Re: Threads
Wobei, so viel schlauer als aus dem Code so wird man da aber auch nicht. Aber nen Anfang...
|
Re: Threads
danke aber das habe ich auch schon mehrmals gelesen, ich weiß ja auch was ein Thread ist und wie er in seinen Grundzügen Arbeitet, abher wie ich das TThreadobject richtig verwende kann ich daraus wohl nicht sehr genau erfahren...
|
Re: Threads
meinst du aus dem Tutorial?
Kannst dir auch mal Luckies durchlesen: ![]() ganz vergessen zu schreiben ;-) |
Re: Threads
Delphi-Quellcode:
das habe ich bisher erreicht, jedoch wird die funktion im execute Teil nicht komplett ausgeführt, sonden bleibt wohl mittendrin stehen. Muss ich synchronise verwenden?? weil ich ja eine Globale variable in der Unit schreibe??
unit Sendethread;
interface uses Classes, messages, dialogs, unit1; type Tstatus = procedure (status: integer; text: Pchar); stdcall; TSendeThread = class(TThread) private { Private-Deklarationen } protected procedure Execute; override; public constructor create(createsuspended: boolean); end; var gtext: string; gstatus: integer; sendestatus: Tstatus; procedure sms_senden(msn,smsc,nr,text: Pchar; status: Tstatus); stdcall; procedure statusbericht(status: integer; text: Pchar); stdcall; implementation { TSendeThread } procedure sms_senden(msn,smsc,nr,text: Pchar; status: Tstatus); stdcall; external 'sms_dll.dll'; constructor TSendeThread.create(createsuspended: boolean); begin inherited create(createsuspended); sendestatus:=statusbericht; end; procedure TSendeThread.Execute; begin { Thread-Code hier einfügen } sms_senden(Pchar('900...'), Pchar('01930100'), Pchar('0170...'), Pchar('test'), sendestatus); end; procedure statusbericht(status: integer; text: Pchar); stdcall; begin gtext:=text; gstatus:=status; end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz