繁体   English   中英

如何在C process.h中停止特定线程?

[英]How to stop a specific thread in C process.h?

我只是学习在C编程中使用process.h在程序内部创建线程的基本知识。 现在,我的问题是如何停止特定线程。

这是我的代码:

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

void  mimicCounter( void * );   

int main()
{
    int i;


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

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

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

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

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

我只想在达到i = 5时停止我创建的线程(mimicCounter函数)(是的,我知道我将其设置为10,但这是为了结束线程演示)。

非常感谢 :)

_endthread和_endthreadex函数分别终止由_beginthread或_beginthreadex创建的线程。 您可以显式调用_endthread或_endthreadex终止线程。 但是,当线程从作为参数传递给_beginthread或_beginthreadex的例程返回时,会自动调用_endthread或_endthreadex。 通过调用endthread或_endthreadex终止线程有助于确保正确分配为该线程分配的资源。

http://msdn.microsoft.com/zh-cn/library/aa246804(v=vs.60).aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM