如何在創建的線程中開啟表單並且執行 |
尚未結案
|
superforsin
一般會員 ![]() ![]() 發表:6 回覆:8 積分:7 註冊:2015-05-14 發送簡訊給我 |
各位新進大家好!由於個人自學找了G大師跟B大師,找不到想要的答案,所以又來打擾各位先進.我想要問的是,新建線程中如果加入一個表單執行,開啟表單時就會馬上閃一下就消失(隨線程結束而關閉).目前小弟有找到兩種方法讓線程中的表單持續運行第一種:藉由無限迴圈的方式讓線程不結束,這樣表單就不會被關閉,但是這樣很佔資原Form->Show(); while(true) {Sleep(500);Application->ProcessMessages();}第二種:使用VCL函數Application->Run();,讓程式執行到表單窗體關閉後,線程才跟著關閉,但是線程會整個塞車例如:當該表單窗體執行顯示後,在同進程不同線程的地方做其他的指令就會當掉(假設同進程各兩個不同線程的作業表單<假設!!!...>)Application->Initialize();Application->CreateForm(__classid(TForm1),&Form1);Application->Run();Form1=newTForm1(Application);Form1->Show();所以需求有以下幾點1.讓程式執行到表單窗體關閉後,線程才跟著關閉2.不像第一種方式那樣的佔資源3.同進程表單窗體切換時不會當掉以上,希望先進幫忙解答,感恩。
|
aftcast
站務副站長 ![]() ![]() ![]() ![]() ![]() 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
|
superforsin
一般會員 ![]() ![]() 發表:6 回覆:8 積分:7 註冊:2015-05-14 發送簡訊給我 |
我是看到有些程式外掛或遊戲外掛,他們使用DLL附加在Process方式(注入),然後可以用指定按鍵呼叫出功能控制的表單;所以我想知道如何達成的方式或原理
===================引 用 aftcast 文 章=================== 抱歉,我的疑問是「為何需要在多線程中開啟 forms?」。有些時候問題的本身不一定要使用線程,使用線程又用了UI,通常問題很多。所以,如果能知道你的目的(不是指程式上的,是指想要達成怎樣的"效果"或是"顯示"),那方法可能很多。 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |