[VB / API] CreateThread et TerminateThread

CreateThread et TerminateThread [VB / API] - Programmation

Marsh Posté le 29-01-2001 à 16:43:00    

Yo (re)
c encore moi,
voilà le pb auquel je me heurte encore actuellement, je créée un thread à l'aide de l'API CreateThread,
je souhaire le killer avec la fonction TerminateThread, seulement voilà, elle me retourne Faux et le code d'erreur '6'
impossible donc de killer mon thread
voici mes déclarations :
 
hThread = CreateThread(THREAD_TERMINATE, ByVal 0&, AddressOf AsyncThread, ByVal 0&, ByVal 0&, hThreadID)
 
TerminateThread hThread, lngErr
 
pour note : le Terminate et Create ne sont pas dans la meme procédure, et l'ID du thread est une variable globale
c le terminate qui me génère l'erreur


---------------
Galerie Photo (Canon)
Reply

Marsh Posté le 29-01-2001 à 16:43:00   

Reply

Marsh Posté le 30-01-2001 à 08:22:58    

Personne n'a jamais fait du multithreading ?? :(


---------------
Galerie Photo (Canon)
Reply

Marsh Posté le 30-01-2001 à 08:47:34    

Mais si, mais pas sous windows et pas en basic.
 
D'une maniere generale une Thread doit se terminer d'elle meme a la fin de la startfuncution. Le fait meme que tu veuilles la tuer n'est pas normal. Il est fort probable que tu ne puisse la tuer que si elle est idle.

Reply

Marsh Posté le 30-01-2001 à 08:56:12    

En POSIX il y a une methode Suspend qui permet d'arreter la thread (la rendre Idle), cherche ce genre de chose, et puis apres tu la tues et la ca devrait marcher...
 Pardon pour ma precedente reponse mais sorti du contexte cela me parraissait tres bizare.
 
Je ne peux te donner que des indication car je fais du Multithreading en POSIX et les methodes ne sont pas les memes que sous Windows...

Reply

Marsh Posté le 30-01-2001 à 09:05:03    

Il y a dans le sous système Win32 un équivalent qui est la fonction SuspendThread.ss
 
Cependant ce qui me parait troublant dans la description de l'une ou l'autre méthode (TerminateThread ou SuspendThread) c'est le fait que la documentation fait allusion à l'arrêt de l'execution en mode user du thread. Que se passe t il si le thread est entré en mode kernel lors de l'appel d'un service du kernel ?
 
Si quelqu'un peu répondre a cela, sans doute Styx tiendra une piste pour résoudre son problème car le thread qu'il souhaite arreter execute une fonction de l'api qui a de fortes chances de s'executer en mode kernel...

Reply

Marsh Posté le 30-01-2001 à 10:19:58    

là j'avoue que g pas le temps d'approndir davantage, fo que je finisse mon client FTP pour ce soir ..
donc je descend un niveau plus bas, j'abandonne les APIs Wininet.dll, et j'attaque directement les APIs Winsock ...
dire que je devais finir ca en deux jours en tout ... :( :(


---------------
Galerie Photo (Canon)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed