AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler bei Thread.Suspend

Ein Thema von Generalissimo · begonnen am 15. Dez 2003 · letzter Beitrag vom 15. Dez 2003
Antwort Antwort
Generalissimo

Registriert seit: 28. Aug 2003
187 Beiträge
 
Delphi 6 Enterprise
 
#1

Fehler bei Thread.Suspend

  Alt 15. Dez 2003, 00:33
Hallo,

ich hab einen normalen Thread erzeugt.
Um ihn zu testen (anhalten & weiter) hab ich unter 2 Button
Code:
//Stopp-Button
MyThread.Suspend
und
Code:
//Weiter-Button
MyThread.Resume
gelegt.

Jetzt bekomm ich den Fehler: Thread-Fehler: Zugriff verweitgert (5)
und zwar nur wenn ich das Programm starte und dann auf anhalten gehe.
Gehe ich erst auf Weiter und dann auf Anhalten kommt er nicht.
Mein Thread wird mit:
Code:
 MyThread:=TMyThread.Create(False);
erzeugt.

Hat jemand ne Idee?
  Mit Zitat antworten Zitat
Kamil

Registriert seit: 17. Aug 2002
178 Beiträge
 
#2

Re: Fehler bei Thread.Suspend

  Alt 15. Dez 2003, 00:56
Wie sieht der Konstruktor von TMyThread aus?
  Mit Zitat antworten Zitat
Generalissimo

Registriert seit: 28. Aug 2003
187 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Fehler bei Thread.Suspend

  Alt 15. Dez 2003, 11:06
Moment:

Code:
constructor TMyThread.Create(CreateSuspended: Boolean);
begin
inherited Create(CreateSuspended);
FErrorList:=TStringList.Create;
FErrorList.LoadFromFile('C:\ErrorList.txt');
FCallList:=TStringList.Create;
FCallList.LoadFromFile('C:\CallList.txt');
FCapi:=TCapi.Create(nil);
FCapi.OnIncomeCall:=FCapiIncomeCallProc;
FCapi.OnError:=FCapiErrorProc;
FCapi.DoListen([ANALOG, DIGITAL]);
end;
In der Execute Prozedure ist nix. Soll, wie man oben sieht, ein Thread werden, der alle Anrufe über die Capi aufzeichnet.
  Mit Zitat antworten Zitat
Kamil

Registriert seit: 17. Aug 2002
178 Beiträge
 
#4

Re: Fehler bei Thread.Suspend

  Alt 15. Dez 2003, 11:14
ist die Execute Prozedur wirklich leer? also gar nichts drin?
Wenn die Execute Prozedur abgelaufen ist ist dein Thread zu Ende.
Dann musst du ihn neu starten.

Versuchs mal so:
Delphi-Quellcode:
procedure TMyThread.Execute;
begin
  while not Terminated do
    Sleep(10000);
end;
Jetzt kannst du den Thread anhalten und weiterlaufen lassen und mit Terminate beenden.

Noch ne Frage:
Warum verwendest du Threads wenn du nichts in der Execute Prozedur stehen hast????
  Mit Zitat antworten Zitat
Generalissimo

Registriert seit: 28. Aug 2003
187 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: Fehler bei Thread.Suspend

  Alt 15. Dez 2003, 11:21
Juhu das war es. Danke!!

Ich nutze ein Thread, weil das die Vorbereitung für eine Service-Anwendung ist. Damit lässt
es sich schön einfach Pause, Weiter etc. eines Windowsdienstes implementieren.
Zudem kann ich dann in der Service-Anwendung noch andere Services einbauen.

Riesen Dank nochmal
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:53 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