[問題] 關於Windows form的Thread

看板C_and_CPP作者 (累人啊....)時間16年前 (2009/12/29 15:44), 編輯推噓0(0010)
留言10則, 2人參與, 最新討論串1/2 (看更多)
如題,請問一下,我現在有一個功能要實現,但是弄不出來 透過Thread再來產生Thread ex Thread1執行fun()函數 fun(){ if (XXX) 再產生一個Thread,執行fun1(); } 這裡有extern的問題 因為全域或靜態變數不能有 Managed 型別 所以array<Thread ^>^ ThreadMove=gcnew array<Thread^>(10); 我宣告在Form1中,為區域變數 而在a.cpp中 gcroot<array<Thread^>^ > ThreadMove; void fun(){ array<System::Threading::Thread^>^ I_ThreadMove=ThreadMove; } compiler會過,但實際執行便會出錯,錯誤訊息如下 'System.NullReferenceException' 類型的例外狀況發生於 Interface4.exe,但使用者 程式碼未加以處理 其他資訊: 並未將物件參考設定為物件的執行個體 請問我要怎麼修改呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.18.48.28

12/29 15:54, , 1F
你的 a.cpp 裡的 ThreadMove 根本沒有實體呀
12/29 15:54, 1F

12/29 16:05, , 2F
目前問題就在於他怎麼去連結到主程式的ThreadMove@@
12/29 16:05, 2F

12/29 16:17, , 3F
不懂你的func, func1, ThreadMove之間的關係
12/29 16:17, 3F

12/29 16:20, , 4F
ThreadMove為型態Thread的陣列,裡面的Thread分別觸發fun1
12/29 16:20, 4F

12/29 16:21, , 5F
可以把Thread1當作是個分配的工具,當某個條件成立,便拿
12/29 16:21, 5F

12/29 16:21, , 6F
ThreadMove內的其中一個Thread去執行函數
12/29 16:21, 6F

12/29 16:30, , 7F

12/29 16:30, , 8F
不知道你的意思是不是這樣
12/29 16:30, 8F

12/29 16:34, , 9F
有點類似,不過不太一樣,我要的是Thread再去呼叫Thread
12/29 16:34, 9F

12/29 16:35, , 10F
以及,若foo及class是放在其它的cpp/h檔的話,該怎麼克服呢
12/29 16:35, 10F
文章代碼(AID): #1BERD7Yg (C_and_CPP)
文章代碼(AID): #1BERD7Yg (C_and_CPP)