[問題] 怎麼在thread裡產生新的form?

看板C_Sharp (C#)作者 (ICQ)時間19年前 (2006/03/01 21:10), 編輯推噓3(300)
留言3則, 3人參與, 最新討論串1/5 (看更多)
我的程式是這樣寫 oThread = new Thread(new ThreadStart(0, &ThreadProc)); oThread->Start(); 然後ThreadProc是寫這樣。 static void ThreadProc() { for(int i=0;i<4;i++) { newform *form1=new newform(); form1->Visible=true;//或者form1->show(); } } 我發現執行程式的時候會瞬間產生四個新視窗,然後這四個新視窗在一瞬間又消失了。 如果將ThreadProc改寫成如下: static void ThreadProc() { while(true) { for(int i=0;i<4;i++) { newform *form1=new newform(); form1->Visible=true;//或者form1->show(); } Thread::Sleep(5000); } } 產生的新視窗雖然會留著,但是會呈現出一種類似當掉的感覺= =a 有沒有什麼好方法可以讓Thread繼續執行,而且可以不會有類似當掉的情況? 我是使用managed c++,不過我想C#應該也差不多吧? 先謝謝板上的強者撥空指導~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.139.53

03/01 22:17, , 1F
該不會是因為GarbageCollection 因為視窗實體沒被指到就收
03/01 22:17, 1F

03/01 23:28, , 2F
要怎麼解啊?= =a
03/01 23:28, 2F

03/02 00:06, , 3F
1.x: __gc new,醜到爆 2.0: Form^和gcnew
03/02 00:06, 3F
文章代碼(AID): #141PrZxu (C_Sharp)
文章代碼(AID): #141PrZxu (C_Sharp)