作者miewQ (ICQ)
看板C_Sharp
標題[問題] 怎麼在thread裡產生新的form?
時間Wed Mar 1 21:17:41 2006
我的程式是這樣寫
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