![]() |
Parameterübergabe an Thread
Moin moin (?) zusammen,
ich möchte in einem Thread das Sortieren eines Arrays auslagern. Der Kopf sieht so aus:
Delphi-Quellcode:
Der Thread wird so erstellt (a1 ist hier ein Array of Integer):
procedure bubblesort(var a:array of integer);stdcall;
var i,j,tmp:integer; begin for i := high(a) downto low(a)+1 do for j := low(a) to i-1 do if a[j]<a[j+1] then begin tmp:=a[j]; a[j]:=a[j+1]; a[j+1]:=tmp; end; end;
Delphi-Quellcode:
Der Thread wird sofort nach dem erstellen wieder beendet, ohne Fehlermeldung allerdings. Das sortieren eines Arrays mit 65.000 Elementen mit Bubblesort geht mit sicherheit nicht in einem Augenblick. An dem Array a1 hat sich auch nichts getan. Was mache ich denn hier falsch?
createthread(nil,0,@bubblesort,a1,0,threadid)
Gruß, Frank. |
Re: Parameterübergabe an Thread
Das kann ein Speichermanagerproblem sein. Von daher nutze lieber BeginThread() und EndThread(). Damit wird auch die MultiThread-Kompatibilität beim Speichermanager gewährleistet.
|
Re: Parameterübergabe an Thread
Durch BeginThread bekomme ich nun einen EOS Error mit Code 5 'Zugriff Verweigert'. Nebenbei habe ich das Array im Primärthread gelesen, AFAIR ist das nicht möglich. Wie kann ich dies denn nun bewerkstelligen?
|
Re: Parameterübergabe an Thread
Zitat:
|
Re: Parameterübergabe an Thread
Zitat:
Gruß Neutral General |
Re: Parameterübergabe an Thread
noch ein kleiner hnweis auf die von borland mitgelieferten demos,
die man unter C:\Programme\Borland\Delphi7\Demos findet. C:\Programme\Borland\Delphi7\Demos\Threads --> dürfte hilfreich sein |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:04 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