AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Problem mit Threads
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Threads

Ein Thema von Nils_13 · begonnen am 28. Jan 2007 · letzter Beitrag vom 27. Apr 2007
Antwort Antwort
Seite 3 von 4     123 4      
Robert Marquardt
(Gast)

n/a Beiträge
 
#21

Re: Problem mit Threads

  Alt 28. Jan 2007, 17:59
Na dann hat aber Borland Mist gebaut. TThreadProc ist in meinem D6 nicht mit stdcall deklariert.

Gerade geht mir ein Licht auf. StatusProc greift vermutlich auf die VCL zu und die ist natuerlich nicht threadsafe.
Bitte StatusProc posten.
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#22

Re: Problem mit Threads

  Alt 28. Jan 2007, 18:02
Delphi-Quellcode:
procedure StatusProc(buffer: Pointer; len, user: DWORD); stdcall;
begin
  if (buffer <> nil) and (len = 0) then
    SendMessage(win, WM_INFO_UPDATE, 8, DWORD(PChar(buffer)));
end;
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#23

Re: Problem mit Threads

  Alt 28. Jan 2007, 18:38
Na das ist gesund. Mist, schon wieder eine Fehlerquelle weniger.
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#24

Re: Problem mit Threads

  Alt 31. Jan 2007, 14:43
*push*

[ich habe jetzt schon ein paar Tage gewartet]
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#25

Re: Problem mit Threads

  Alt 1. Feb 2007, 07:48
Lade am Besten mal den Teil per Anhang hoch.
Im Moment muss man sich den code aus verschiedenen Posts zusammensuchen.
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#26

Re: Problem mit Threads

  Alt 1. Feb 2007, 14:09
Hab was verwechselt... Hier ist das korrekte Projekt. Bitte erst die Komponente des Ornders Komponenten installieren. Wenn nicht, ist der Code dennoch da.
Angehängte Dateien
Dateityp: rar radio_125.rar (450,5 KB, 6x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#27

Re: Problem mit Threads

  Alt 1. Feb 2007, 22:03
Ich hab mir den Code mal angeguckt.

1)
Du hast kein "stdcall;" als Aufrufkonvention für "OpenURL()". Es funktioniert trotzdem (, da wahrscheinlich stdcall bei dir als Standard eingestellt ist).

2)
Die Exception tritt auf, wenn du auf "urls" zugreifst.
Dyn. Array mit 0 Elementen, du greifst ohne Prüfung auf ein Element zu.

3)
Per Debugger hättest du das alles selbst rausgefunden!
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#28

Re: Problem mit Threads

  Alt 2. Feb 2007, 10:12
Zu
1.: Was genau heißt Standard. Code oder System ?
2.: Ich finde die Stelle wirklich nicht, wo dies der Fall sein könnte. Kannst du es mir sagen ? Bzw.: Ich versteh nicht, wie dies möglich sein kann.
3.: Das habe ich gemacht, bevor dieser Thread eröffnet wurde und während ihr mir weiterhelfen wolltet, habe ich auch debuggt.
  Mit Zitat antworten Zitat
Karl-Heinz

Registriert seit: 12. Nov 2003
Ort: Waldkirch
12 Beiträge
 
Delphi 5 Enterprise
 
#29

Re: Problem mit Threads

  Alt 15. Feb 2007, 16:31
Hallo,
habe gestern mit dem gleichen Code herumgespielt (ein Beispielprojekt aus dem Bass-SDK).
Hatte unter D5 die gleichen Probleme.
Die OpenURL()-Procedure muss NICHT mit stdcall oder cdecl deklariert werden; soviel ist klar. Denn die Delphi-Funktion "BeginThread" erwartet einfach nur einen Pointer auf eine Procedure mit einem Pointer-Parameter.

Auch die Lösung, die zu übergebende URL als pchar oder array of char zu übergeben (statt pchar(urlstring) ) brachte keinen Erfolg:
Immer wenn ich in der Procedure OpenUrl (welche von BeginThread aufgerufen wird) nachgesehen habe, was denn als Url-Parameter übergeben wurde, kam - Zufall heraus.

Mein Fazit: Nicht die Funktion BeginThread nutzen, sondern einen eigenen sauberen TThread-Abkömmling schreiben.
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#30

Re: Problem mit Threads

  Alt 22. Feb 2007, 17:12
Ok. Damit habe ich aber gewisse Startschwierigkeiten. Könnt ihr mir da bitte helfen ?
Delphi-Quellcode:
  type
    TMyThread = class(TThread) // ist aus dem Kopf, kA, ob das so stimmt
      procedure StartThread(?);
      procedure EndThread(?);
    private
   
    public

    end;
  
procedure TMyThread.StartThread(?);
begin
  ??
end;

procedure TMyThread.EndThread(?);
begin
  ??
end;

// Ist jetzt noch die Frage, ob nötige andere Sachen nötig sind
// ?/?? heißt, dass ich nicht weiß, was an diese Stelle muss
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz