windows - Sådan stopper du en bestemt tråd i C process.h?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg lærer bare det blotte ben at lave en tråd inde i et program ved hjælp af process.h i C programmering. Og nu er mit problem, hvordan man stopper en bestemt tråd.


Her er min kode:


#include <stdio.h>
#include <windows.h>
#include <process.h>    

void  mimicCounter( void * );   

int main()
{
    int i;


    printf( "Now in the main() function.
" );

    \_beginthread( mimicCounter, 0, (void*)12 );

    for(i = 2; i <= 10; i++){
          Sleep(500);
          printf("\%d
",i);
    }

    system("PAUSE");
    printf("
");
}

void  mimicCounter( void *arg )
{
    int i;
    printf( "The mimicCounter() function was passed \%d
", (INT\_PTR)arg ) ;
    for(i = 1; i <= 10; i++){
          Sleep(500);
          printf("\%d
",i);
    }
}


Jeg vil bare stoppe tråden, som jeg har oprettet (mimicCounter-funktionen), når den når i=5, (ja jeg ved, jeg sætter den til 10, men dette er for at afslutte en tråddemo).


Mange tak :)

Bedste reference


Funktionerne \_endthread og \_endthreadex afslutter en tråd oprettet af henholdsvis \_beginthread eller \_beginthreadex. Du kan ringe \_endthread eller \_endthreadex eksplicit til at afslutte en tråd; Dog kaldes \_endthread eller \_endthreadex automatisk, når tråden vender tilbage fra rutinen, der er bestået som en parameter til \_beginthread eller \_beginthreadex. Afslutning af en tråd med et opkald til endthread eller \_endthreadex hjælper med at sikre korrekt genopretning af ressourcer tildelt til tråden.


Fra http://msdn.microsoft.com/en-us/library/aa246804(v=vs.60).aspx[2]