TThread與window aip的使用.. |
尚未結案
|
雲中鵝
一般會員 發表:14 回覆:24 積分:7 註冊:2004-12-21 發送簡訊給我 |
請問大大... 1.如何在使用Tthread元件下還可以使用windows api..... 像是waitfor()及waitforObject(HANDLE hHandle,DWORD dwMilliseconds);要如何使用它們使得有相同的結果..及要放在那裡?..因為以waitfor()及waitforobject()都可以在設為在thread完成時變成激發狀態....waitfor()是等侍本身的 thread terminates嗎?而在WaitForObject(..)則是以hHandle是否有成激發狀態嗎? 2.請問執行緒核心物件...是什麼?
若二個不同檔案的thread1.h' thread1.cpp 及thread2.h 'thread2.cpp中...的動作相同時(但是使用不同Form1的VCL元件時).分別建立為何其handle都是相同的值.. 謝謝回答 Try it!
------
Try it! |
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
|
雲中鵝
一般會員 發表:14 回覆:24 積分:7 註冊:2004-12-21 發送簡訊給我 |
嗯.....因為手上正好有一本...WIN32多緒程式設計的書藉..故...小弟想以API實現..
1.為何程式...GetExitCodeThread..在這個for(;;)判斷中..一直沒有離開呢..而使用sleep()時..則有回應...呢?是要用Synchronize(..)嗎?是因使用到vcl元件嗎? 謝謝回答
DWORD WINAPI ThreadFunc(void* ); void __fastcall TForm1::Button1Click(TObject *Sender) { int i; HANDLE hThrd[5]; DWORD threadid,exitcode; for(i=0;i<5;i ) { hThrd[i]=CreateThread(NULL,0,ThreadFunc,(void*)i,0 ,&threadid); if(threadid) { this->Memo1->Lines->Add("thread aunched" IntToStr(i)); } for(;;) { GetExitCodeThread(hThrd[i],&exitcode); if(exitcode!=STILL_ACTIVE) break; else { Form1->Memo1->Lines->Add("thread still running!"); } Sleep(1000); } CloseHandle(hThrd[i]); } Sleep(200); //exit(0);//將使得thread未完全結束... } //--------------------------------------------------------------------------- DWORD WINAPI ThreadFunc(void* n) { int i; int *b=(int*)n; Form1->Memo1->Lines->Add("the para is" IntToStr(n)); for(i=0;i<5;i ) Form1->Memo1->Lines->Add(IntToStr((int)n) IntToStr((int)n) IntToStr((int)n)); return 0; /* Sleep((DWORD)n*100*2); return (DWORD)n*10;*/ }Try it!
------
Try it! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |