看板 C_Sharp 關於我們 聯絡資訊
我使用VC C# 2010,Framework 3.5來編輯多執行緒程式。 我不曉得是否是我觀念有問題,程式偶而會出錯(執行緒的buffer偶發就null)。 想請教一下板上的前輩。 問題: 我建立了30個object,每個object裡面開一個thread(也就是有30個thread) 並且依序start這30個thread(幾乎同時開啟)。 每個thread function裡面我會再建立另一個區域的object (假設物件名稱為A,30個thread就有30個物件A)。 這30個物件A我是用來計算大buffer的影像處理,並且我確定各物件A的buffer沒有共用。 但偶發就是會出現物件A的buffer在計算中突然變成null的情況 (但程式段落還沒到清除此buffer的地方,還很正常在使用)。 是否是會因為太多執行緒創建同一個私有的class物件,導致資料互相影響? -- 推 godtomanne:alt+f4沒有用? 9/10 00:18 → alt:去你媽的       9/10 00:24 噓 F4:你才沒用       9/10 00:25 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.126.14.155 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1462895075.A.8BC.html
Caesar08: 如果你用thread才有問題,那就是你code有寫錯 05/10 23:47
Caesar08: 然後根據我的經驗,你如果不把code放上來,用說的根本沒 05/10 23:47
Caesar08: 辦法幫你debug 05/10 23:48
好的,我會貼上來請教板上的前輩
TameFoxx: 應該是你的物件A去跟大Buffer拿東西的時候 05/11 00:34
TameFoxx: 不是複製一個副本 05/11 00:35
TameFoxx: 看起來突然變null就是因為他在別的地方被Dispose? 05/11 00:36
TameFoxx: 不過Dispose後好像不會顯示null.... 有點不確定 05/11 00:36
謝謝,我再多確認一下
Litfal: >>這30個物件A我是用來計算大buffer的影像處理 05/11 09:06
Litfal: 大buffer > A 你是怎麼做的? 05/11 09:07
Litfal: 順便提醒一下,你這樣效率可能反而會差... 05/11 09:07
謝謝,我重新修改只有一個執行緒做計算了
johnpage: 工作內容沒分配 05/11 11:54
請問工作內容沒分配是什麼意思?小弟程式剛入門,很多不懂的地方 ※ 編輯: benbchung (59.126.14.155), 05/11/2016 20:38:52