我只是在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但这是用于结束线程演示)。
非常感谢你:)
答案 0 :(得分:0)
_endthread和_endthreadex函数分别终止由_beginthread或_beginthreadex创建的线程。您可以显式调用_endthread或_endthreadex来终止线程;但是,当线程从作为参数传递的例程返回到_beginthread或_beginthreadex时,会自动调用_endthread或_endthreadex。通过调用endthread或_endthreadex来终止线程有助于确保正确恢复为该线程分配的资源。
来自http://msdn.microsoft.com/en-us/library/aa246804(v=vs.60).aspx