Retour au sommaire
Codes (4628)
Les plus
populaires du mois
Les plus
populaires
Les plus
récents
Les
mis à jour
Toutes
les sources
Tout le
niveau 1
(débutant)
Tout le
niveau 2
(initié)
Tout le
niveau 3
(expert)
Toutes les sources avec un
fichier ZIP
Les sources
(78)
Les
mieux notés
Trouver un code par mot clé
(Nouveau)
Les Trophées
Top des favoris des membres
Top par catégorie
Les auteurs de sources
Le top des membres
Ajouter une source
Catégories des codes
.Net
API
Application
Applications Linux
Astuces
Base de données
Chaîne de caractères
Date / Heure
DirectX
Divers
Fichiers / Disque
Graphique
GTK+
Imprimante
Jeux
Maths & Algorithmes
Multimédia
OpenGL
Périphériques
Réseaux & Internet
Sécurité & Cryptage
Système
Tutoriaux
Tutoriaux (4)
Les derniers tutoriaux
Ajouter un tutorial
Forum (89132)
Liste des thèmes
Poser une question
Les derniers messages
Videos
Les dernières vidéos
Proposer une vidéo
CSLib .NET
CSLib .NET (Librairie .NET)
Comparer les prix
(Nouv.)
Livres (12860)
Tous
les livres
Nos conseils
Les
dernières parutions
Top des ventes
CodeS-SourceS
Vos
livres favoris
Top favoris
des membres
Les livres les
plus consultés
Outils & Liens
Les RFC
Le Dico de la prog
Annuaire de sites
Emploi (1993)
Postulant
Gérer votre CV
Déposer votre CV (c'est
gratuit
)
Consulter les offres d'emploi
Recruteur
[NOUVEAU]
Rechercher un CV
Déposer une offre d'emploi
Consulter les CVs
Gérer vos offres d'emploi
Etat de vos crédits pour déposer des offres d'emploi
Services
Modèles de CV et lettres de motivations
(NOUVEAU)
Trouvez une convention collective
(NOUVEAU)
Création de bannières en Flash
Téléchargements
Fonds d'écran
(Nouveau)
CS ToolBar
Toolbar Firefox
(Nouveau)
Les compil's
Contact
Demande de partenariat
Demande de prestation (Devis)
Annoncer sur CodeS-SourceS (Pub)
Autre
Contacter les admins (un pb sur le site ?)
Chat
Autres langages
CodeS-SourceS
Visual Basic / VB.NET
ASP / ASP.NET
ColdFusion
PHP
Javascript / DHTML
Delphi
Flash
JAVA / J2EE
Graphisme
IRC
Assembleur
C# / C#.NET
PDA / PocketPC
SQL
Foxpro
Python
Dotnet-News
IcoMania
Divers
Livre d'or
(Nouveau)
Remerciements
Les admins CodeS-SourceS
Faire un lien vers CodeS-SourceS
Comment
soutenir CodeS-SourceS
?
Partenaires
Developers Association
Frontier.fr
Editions Eyrolles
Magazine
Programmez!
CodeWise
Sites Internet
Section Etudiants
Obtenir les produits Microsoft gratuitement!
Liste des écoles d'info
Job étudiant : Donnez des cours particuliers
Project Hoshimi
(NOUVEAU)
Section Pros
Recevoir des livres blancs GRATUITEMENT
Evènements à venir
Emploi
Magazines
Liste des magazines
Connexion
Derniers blogs
14ème édition...
Collaboration entres st...
Webcasts microsoft stud...
[asp-php.net] - .net co...
Suggestion pour msdn li...
la suite...
Feed RSS des blogs
Publicité
5 couteaux Suisse-clé USB à gagner !
Le magazine
Programmez!
et
CodeS-SourceS
lancent conjointement un mini sondage pour mieux connaître vos outils favoris.
Sont en jeu 5 clés USB (Couteau-Suisse) offert par le magazine
Programmez!
et Swissbit
Pour participer
cliquez ici
. Merci d'avance pour votre participation à ce sondage !
Nix
Votre publicité ici ?
Derniers messages du forum
Probleme avec les arbre...
Re : crypteur d'ip qui ...
Re : crypteur d'ip qui ...
Re : crypteur d'ip qui ...
Re : crypteur d'ip qui ...
La suite...
Feed RSS du forum
Mes Rss
Fox...
Client for sql server d...
Developing generic data...
Build your own add-in f...
Alert / confirm or call...
Voir toutes vos news...
Comparer les prix
Cles USB 2Go au meilleur prix !
Stats
28
pers sur ce site
267
pers sur tout CS
545 421
membres
498
nouveaux aujourd'hui
6 317
membres club
Divers
Personnaliser
Mettre ce site au démarrage
Ajouter ce site à vos favoris
Soutenir CodeS-SourceS ?
Restez informé :
Ajouter à My Yahoo!
Ajouter à My Newsgator
Ajouter à My Bloglines
Ajouter à My MSN
Liste des RSS disponibles
Authentification
Nom d'utilisateur :
Mot de passe :
Se souvenir du profil
Mot de passe oublié ? / Activation de compte
Créer un compte
Pub
Rechercher sur le site
Rechercher avec :
Moteur de recherche
Mots associés aux sources [Nouveau]
Mots clés :
Vous ne pouvez saisir qu'un seul mot alphanumérique
Codes & Forum
Codes
Tutoriaux
Forum
Blogs
News .NET
Boutique
Livres
Icones
RFC
Vidéos
[ Dernières recherches ]
Codes .NET seulement
STOP THREAD [DEMANDE FORUM]
<img>
Information sur la source
Note :
8,00/10
1
2
3
4
5
6
7
8
9
10
Catégorie de cette source :
API
Auteur :
Arnotic
[
Site perso
][
Ecrire un message
]
Niveau de la source :
Débutant
Date création : 23/02/2004 20:35:34
Date de mise à jour : 25/10/2005 15:11:54
Vue 1942 fois
Commentaire sur cette source (
19
)
Ajouter votre commentaire sur cette source
Donnez une note à cette source :
Description
Se trouve aussi ici: http://www.dev.winsysdev.com/
Voici une source qui créer un thread. Ce thread compte jusqu'a 100 puis se termine. Mais on peut cliquer sur un bouton "Stop" pour arreter prématurément le traitement...
Explication finale
Amusez-vous bien :-)
Fichier ZIP
Pour les "
Membres Club
", vous pouvez consulter directement le contenu du zip sans télécharger le zip !
Fichier
Taille
Voir
Télécharger
Release/StopThread.exe
23 040 octets
resource.h
637 octets
StopThread.aps
33 300 octets
StopThread.cpp
1 703 octets
StopThread.ncb
44 032 octets
StopThread.rc
2 647 octets
StopThread.sln
920 octets
StopThread.suo
8 192 octets
StopThread.vcproj
3 099 octets
Télécharger le ZIP
Dernières sources de cet auteur [
Arnotic
]
[DRIVER] - CACHER UN PROCESSUS
API HOOKING
AUTOMATISER EXCEL SANS MFC NI #IMPORT
CLIENT FTP (SANS WININET)
SENDER BY SMTP [AVEC FICHIER JOINT]
Dernières sources dans la même catégorie [
API
]
MINI NOTEPAD
WINAPIOVERRIDE32
PORT COM ENUM
BLOC NOTE (WIN32)
ROBOT SOUS WINDOWS [DEV-C++][VC++]
Sources qui peuvent être en rapport avec celle-ci
STOP OU ENCORE (WIN32)
Voir toute la liste pour cette recherche
Historique des mises à jour
Date
Description
25/10/2005 15:11:54
Se trouve aussi ici: http://www.dev.winsysdev.com/
Les commentaires
Commentaire de :
LordBob
le 24/02/2004 18:30:56
tu aurrais peut etre pu un peu plus expliquer ta source pour que les debutant, comprenne un peu mieux !!! car moi si je ne savait pas comment créer un thread, bah j'aurrais galéré pour bien comprendre ta source !!!
Commentaire de :
Arnotic
le 24/02/2004 19:57:45
Il me semblait que la source etait suffisamente petite pour arriver à s'y retourver.
Je prends note.
Commentaire de :
vecchio56
le 13/05/2004 12:58:28
Le problème avec ton truc c'est que ce n'est pas satisfaisant pour un thread qui devrait aller vite, puisque l'appel à WaitForSingleObject prend pas mal de temps. Pourquoi ne pas utiliser un simple booléen qui dit s'il faut arrêter?
Commentaire de :
AlexMAN
le 18/07/2004 13:18:30
Un booleen est TOTALEMENT deconseillé ds l'utilisation de thread : utilisation du CPU de minimum 99% avec cette methode...
Commentaire de :
vecchio56
le 18/07/2004 13:22:19
Bah non, le while(b) sera plus rapide que le while( WaitForSingleObject( d_eventStop, D_TIME_OUT_TEST ) == WAIT_TIMEOUT ); qui va beaucoup ralentir le thread
Commentaire de :
AlexMAN
le 18/07/2004 13:28:52
en terme de rapidité je pense pareil ke toi, mais cela n'empeche pas ke le cpu sera ocupé a 99% par ton thread, et c vraiment un truc a eviter..
Commentaire de :
vecchio56
le 18/07/2004 13:35:00
Non j'ai fait un programme qui faisait de gros calculs, que je devais arrêter quand je voulais, eh bien la solution avec un booléen était bien meilleure (d'autant meilleure qu'on vérifie souvent s'il faut arrêter le thread - il est évident que regarder si un booleen est tru ou false va plus vite qu'appeler une fonction qui va regarder en plus des HANDLE).
Tu n'a qu'a essayer sur cet exemple, le cpu n'est pas du tout occupé, de ce coté la ca ne change structement rien.
D'ailleurs je ne voie pas pourquoi ca utiliserait plus de cpu??
Commentaire de :
vecchio56
le 18/07/2004 13:35:36
Voila: tu n'a qu'a essayer par toi même
#include <windows.h>
#include <process.h>
#include <stdlib.h>
#include "resource.h"
#define D_TIME_OUT_TEST 1L
HWND hstatus;
BOOL b;
DWORD Thread_TestID;
DWORD WINAPI Thread_Test( LPVOID lpParam )
{
int inc=0;
char *szbuff;
if (!(szbuff = (char *)malloc(4)))
return 1;
do
{
if (inc == 99)
b = FALSE;
SetWindowText(hstatus, itoa(++inc, szbuff, 10));
Sleep(100L);
} while(b);
free(szbuff);
MessageBox(NULL, "Arret du thread.", "Stop", 0x40);
return 0;
}
BOOL CALLBACK AppDlgProc(HWND hdlg, UINT mssg, WPARAM wParam, LPARAM lParam)
{
switch(mssg)
{
case WM_INITDIALOG:
SetClassLongPtr(hdlg, GCL_HICON, (LONG)(LONG_PTR)LoadIcon(0, IDI_APPLICATION));
hstatus = GetDlgItem(hdlg, IDC_STATUS);
return 1;
case WM_COMMAND:
switch(wParam)
{
case IDC_START:
b = TRUE;
CreateThread(NULL, 0, &Thread_Test, NULL, NULL, &Thread_TestID);
return 0;
case IDC_STOP:
b = FALSE;
return 0;
case IDCANCEL:
EndDialog(hdlg, 0);
}
}
return 0;
}
int WINAPI WinMain(HINSTANCE hinst, HINSTANCE, PSTR, int)
{
DialogBoxParam(hinst, (LPCTSTR)IDD_APP, 0, AppDlgProc, 0);
return 0;
}
Commentaire de :
AlexMAN
le 18/07/2004 13:43:16
vecchio56 > ya un sleep(100) ds ta boucle, c normal ke ca pompe pas le cpu comme un malade...enleve le, teste sur un grand nombre, et regarde l'activité de ton cpu...
Commentaire de :
vecchio56
le 18/07/2004 13:47:50
Bah oui mais quand on a un processus qui doit utiliser beaucoup de mémoire, il faut bien le faire. Essaie de calculer 100000! avec maple et tu verra que ta cpu est à 100%
Commentaire de :
vecchio56
le 18/07/2004 13:50:11
Enfin mets D_TIME_OUT_TEST à 0 et il va aussi te bouffer toute ta cpu
Commentaire de :
Arnotic
le 19/07/2004 08:24:03
En fait si le Thread ne vient pas prendre 100% du CPU c'est juste grace au Sleep(). le mieux mettre en Sleep(10L); quand très très peu de traitement dans le thread.
Après on peut justement ne pas mettre de Sleep() pour une aplication en plein ecran pendant qu'elle traite des données pour allez plus vite.
Commentaire de :
AlexMAN
le 19/07/2004 12:11:31
Arnotic > personnelement, j'ai enormement de pb avec les threads, jme suis tapé Petzold mais j'ai pas plus compris (serai je un cas desespéré ?!), donc jvoulais te demander ds la limite de ton temps disponible (?!), si tu pouvais pas nous faire une ptite applic Multi-Thread avec un peu plus de threads kici (avec event, mutex, section critique...)...Voila c seulement si tu as du temps, sinon c po grav, jV aller me taper Richter...merci
++
ALhexman
Commentaire de :
Arnotic
le 19/07/2004 12:17:13
Je verra pour faire un exemple d'appli comme ca alors. Sinon qu'est-ce que tu ne comprends pas exactement ?
Commentaire de :
AlexMAN
le 19/07/2004 12:24:13
ben en fait, je ne comprends pas ou placer WaitForSingleObject dans la threadProc. Comment gerer plusieurs threads est vraiment un mystere ! Kan faire (pour les event) un SetEvent, ou un ResetEvent pour permettre aux autres threads de s'executer, enfin je gere pas du tt kan le nbre de threads (sans compter le thread principal) depasse 1.
Commentaire de :
NitRic
le 07/09/2004 21:54:44
DWORD dwRet = WaitForSingleObject( hnd, INFINITE );
switch ( dwRet ) {
case WAIT_TIMEOUT:
...
break;
case WAIT_FAILED:
...
break;
case WAIT_OBJECT_0:
...
break;
case _WAIT_ABANDONNED:
/* mutex only */
break;
}
Pas besoin de boucle, WaitForSingleObject()/WaitForMultipleObjects() sont parfait pour ce type de `boulot` ...
un while(var); est `strictement` déconseillé. Peu importe le type de projet. Il y à les sections critiques, mutex, event, semaphore, ... pour la synchronisation ...
Petit tutorial parfait à propos du multithreadnig(pour les interessés);
http://bob.developpez.com/tutapiwin/article_46.php
~(.:: NitRic ::.)~
Commentaire de :
ncoder
le 03/09/2005 10:54:04
Non la source est assez courte pour la comprendre sans avoir besoin de beaucoup de commentaires !
Merci pour ta source, elle est très bien faite (pour commencer!) ;)
Commentaire de :
Inekman
le 11/11/2005 08:55:11
Je m'aide de ton code pour implémenter un arrêt d'un thread dans un de mes programmes fait en Delphi, cependant je ne parviens pas à définir la contante D_TIME_OUT_TEST à 1L, quelle est cette valeur ?
Merci.
Commentaire de :
BruNews
le 11/11/2005 09:16:35
1L ou 1 c'est idem.
Pour ajouter un commentaire, vous devez vous identifier :
Si vous n'avez pas encore de compte sur un des sites CodeS-SourceS
cliquez ici
pour créer votre compte.
Authentification
Nom d'utilisateur :
Mot de passe :
Se souvenir du profil
Mot de passe oublié ? / Activation de compte
Créer un compte
Pub
Nos partenaires et amis ;-)
Dev réalisé par
Nicolas SOREL (Nix)
avec l'aide de :
Cyril DURAND
,
Tkfe
,
Sebmafate
,
Aurélien
,
Neodante
,
Coq
,
Proviste
,
CrazyHt
Design réalisé par
Graph-Comception
&
N.SOREL (Nix)
Logos & Mascotte réalisée par
N.SOREL (Nix)
&
KDO-Comception
CPPFrance.com© Toute reproduction
même partielle est interdite
sauf accord écrit du Webmaster
Temps d'éxécution de la page :
3,421875sec
CodeS-SourceS.com© est une marque déposée tous droits réservés
Hébergement de
Serveur dédié
-
Téléphonie VOIP
-
Comparer les prix
analyse mesure frequentation internet par