看板 C_Sharp 關於我們 聯絡資訊
我的程式是這樣寫 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
liunate:該不會是因為GarbageCollection 因為視窗實體沒被指到就收 03/01 22:17
miewQ:要怎麼解啊?= =a 03/01 23:28
EricTsai:1.x: __gc new,醜到爆 2.0: Form^和gcnew 03/02 00:06