簡體   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