[問題] 請問多執行緒這樣寫是否有問題?

看板C_Sharp (C#)作者 (距離...是妳經過我的時候)時間9年前 (2016/05/10 23:44), 9年前編輯推噓2(209)
留言11則, 4人參與, 最新討論串1/2 (看更多)
我使用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

05/10 23:47, , 1F
如果你用thread才有問題,那就是你code有寫錯
05/10 23:47, 1F

05/10 23:47, , 2F
然後根據我的經驗,你如果不把code放上來,用說的根本沒
05/10 23:47, 2F

05/10 23:48, , 3F
辦法幫你debug
05/10 23:48, 3F
好的,我會貼上來請教板上的前輩

05/11 00:34, , 4F
應該是你的物件A去跟大Buffer拿東西的時候
05/11 00:34, 4F

05/11 00:35, , 5F
不是複製一個副本
05/11 00:35, 5F

05/11 00:36, , 6F
看起來突然變null就是因為他在別的地方被Dispose?
05/11 00:36, 6F

05/11 00:36, , 7F
不過Dispose後好像不會顯示null.... 有點不確定
05/11 00:36, 7F
謝謝,我再多確認一下

05/11 09:06, , 8F
>>這30個物件A我是用來計算大buffer的影像處理
05/11 09:06, 8F

05/11 09:07, , 9F
大buffer > A 你是怎麼做的?
05/11 09:07, 9F

05/11 09:07, , 10F
順便提醒一下,你這樣效率可能反而會差...
05/11 09:07, 10F
謝謝,我重新修改只有一個執行緒做計算了

05/11 11:54, , 11F
工作內容沒分配
05/11 11:54, 11F
請問工作內容沒分配是什麼意思?小弟程式剛入門,很多不懂的地方 ※ 編輯: benbchung (59.126.14.155), 05/11/2016 20:38:52
文章代碼(AID): #1NCW7ZYy (C_Sharp)
文章代碼(AID): #1NCW7ZYy (C_Sharp)