Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Wie viele Threads kann man in einer Anwendung starten? (https://www.delphipraxis.net/108933-wie-viele-threads-kann-man-einer-anwendung-starten.html)

Thomas83 21. Feb 2008 14:49

Re: Wie viele Threads kann man in einer Anwendung starten?
 
Zitat:

Zitat von Christian Seehase
Moin Thomas,

was für Objekte willst Du denn überwachen?
Vielleicht wäre auch MSDN-Library durchsuchenWaitForMultipleObjects was für Dich

objekte ist vielleicht falsch ausgedrückt, meine mit objekte z.b verzeichnisse oder dateien.
möchte z.b 20 dateien im abstand von 10 sekunden prüfen ob eine änderung vorgenommen wurde.

phXql 21. Feb 2008 14:51

Re: Wie viele Threads kann man in einer Anwendung starten?
 
Es gibt als Gegenstück zu den Threads noch Fiber. Diese sind leichter zu verwalten. Gibts aber erst afaik ab Win2k.

RavenIV 21. Feb 2008 14:52

Re: Wie viele Threads kann man in einer Anwendung starten?
 
Zitat:

Zitat von Thomas83
objekte ist vielleicht falsch ausgedrückt, meine mit objekte z.b verzeichnisse oder dateien.
möchte z.b 20 dateien im abstand von 10 sekunden prüfen ob eine änderung vorgenommen wurde.

Nix einfacher als das.
Da nimmt die die Win-API die meiste Arbeit ab.
Du kannst Dich dafür registrieren, dass Du bei Änderung einer Datei/Verzeichnis benachrichtigt wirst.
Dafür gibt es auch Delphi-Komponenten.

Such mal hier im Forum oder bei torry.net nach DirectoryMonitor oder DirMonitor.

RavenIV 21. Feb 2008 14:53

Re: Wie viele Threads kann man in einer Anwendung starten?
 
Zitat:

Zitat von phXql
Es gibt als Gegenstück zu den Threads noch Fiber. Diese sind leichter zu verwalten. Gibts aber erst afaik ab Win2k.

Hast Du dazu mehr Infos oder Beispiele.
Das kenn ich nämlich auch nicht...

Meflin 21. Feb 2008 14:58

Re: Wie viele Threads kann man in einer Anwendung starten?
 
Zitat:

Zitat von Thomas83
oder ich erstelle für jedes objekt was überwacht werden soll einen timer, da kann ich den intervall auch noch eingeben.

Blöde Idee ;) Ein Timer ist ein Thread :stupid:


Apollonius 21. Feb 2008 14:59

Re: Wie viele Threads kann man in einer Anwendung starten?
 
Ich glaube nicht, dass Fiber hier nützlich sind.
Für die, die nicht wissen, was Fiber sind: Ein Thread kann mehrere Fiber verwalten. Mit Fibern kann man eine Art Multithreading realisieren, aber kein präemptives, sondern nur kooperatives, da zu einem anderen Fiber nur gewechselt wird, wenn man SwitchToFiber aufruft. Da Fiber aber nicht wirklich parallel arbeiten und sich auch nicht in kurzen Zeiträumen abwechseln, denke ich nicht, dass sie in der genannten Angelegenheit von Nutzen sind.

RavenIV 21. Feb 2008 15:13

Re: Wie viele Threads kann man in einer Anwendung starten?
 
Zitat:

Zitat von Meflin
Zitat:

Zitat von Thomas83
oder ich erstelle für jedes objekt was überwacht werden soll einen timer, da kann ich den intervall auch noch eingeben.

Blöde Idee ;) Ein Timer ist ein Thread :stupid:

Nicht ganz.
Ein Timer erzeugt einen Thread, in welchem er abgearbeitet wird.

Luckie 21. Feb 2008 15:27

Re: Wie viele Threads kann man in einer Anwendung starten?
 
Zitat:

Zitat von RavenIV
Zitat:

Zitat von Meflin
Zitat:

Zitat von Thomas83
oder ich erstelle für jedes objekt was überwacht werden soll einen timer, da kann ich den intervall auch noch eingeben.

Blöde Idee ;) Ein Timer ist ein Thread :stupid:

Nicht ganz.
Ein Timer erzeugt einen Thread, in welchem er abgearbeitet wird.

Hä? Blödsinn. Erstellt man mit der API-Funktion MSDN-Library durchsuchenSetTimer einen Timer generiert Windows in den angegebenen Intervall für das Fenster eine MSDN-Library durchsuchenWM_TIMER Message, welche über die Nachrichtenschleife abgerufen und über die Fensterprozedur abgearbeitet wird. Wo ist da jetzt der Thread?

Abgesehen mal davon, gibt es entsprechende API-Funktionen, um Verzeichnisse auf Änderungen zu überwachen ([dp]Verzeichnis überwachen[/dp]).

RavenIV 21. Feb 2008 15:32

Re: Wie viele Threads kann man in einer Anwendung starten?
 
Zitat:

Zitat von Luckie
Zitat:

Zitat von RavenIV
Zitat:

Zitat von Meflin
Zitat:

Zitat von Thomas83
oder ich erstelle für jedes objekt was überwacht werden soll einen timer, da kann ich den intervall auch noch eingeben.

Blöde Idee ;) Ein Timer ist ein Thread :stupid:

Nicht ganz.
Ein Timer erzeugt einen Thread, in welchem er abgearbeitet wird.

Hä? Blödsinn. Erstellt man mit der API-Funktion MSDN-Library durchsuchenSetTimer einen Timer generiert Windows in den angegebenen Intervall für das Fenster eine MSDN-Library durchsuchenWM_TIMER Message, welche über die Nachrichtenschleife abgerufen und über die Fensterprozedur abgearbeitet wird. Wo ist da jetzt der Thread?

Auch Hääähh?

Hab ich irgendwo behauptet, dass die API-Funktion SetTimer verwendet wird?
Die VCL erstellt einen neuen Thread, wenn ein TTimer verwendet wird.
Das ist doch richtig, oder nicht?

Meflin 21. Feb 2008 15:32

Re: Wie viele Threads kann man in einer Anwendung starten?
 
@Luckie: also ich persönlich meinte ja den guten alten TTimer ;) Und ich war der Meinung dass sich der eines eigenen Threads bediente :gruebel:



Alle Zeitangaben in WEZ +1. Es ist jetzt 17:17 Uhr.
Seite 2 von 3     12 3      

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