作者benbchung (距离...是你经过我的时候)
看板C_Sharp
标题[问题] 请问多执行绪这样写是否有问题?
时间Tue May 10 23:44:31 2016
我使用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://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1462895075.A.8BC.html
1F:→ Caesar08: 如果你用thread才有问题,那就是你code有写错 05/10 23:47
2F:→ Caesar08: 然後根据我的经验,你如果不把code放上来,用说的根本没 05/10 23:47
3F:→ Caesar08: 办法帮你debug 05/10 23:48
好的,我会贴上来请教板上的前辈
4F:推 TameFoxx: 应该是你的物件A去跟大Buffer拿东西的时候 05/11 00:34
5F:→ TameFoxx: 不是复制一个副本 05/11 00:35
6F:→ TameFoxx: 看起来突然变null就是因为他在别的地方被Dispose? 05/11 00:36
7F:→ TameFoxx: 不过Dispose後好像不会显示null.... 有点不确定 05/11 00:36
谢谢,我再多确认一下
8F:→ Litfal: >>这30个物件A我是用来计算大buffer的影像处理 05/11 09:06
9F:→ Litfal: 大buffer > A 你是怎麽做的? 05/11 09:07
10F:→ Litfal: 顺便提醒一下,你这样效率可能反而会差... 05/11 09:07
谢谢,我重新修改只有一个执行绪做计算了
11F:推 johnpage: 工作内容没分配 05/11 11:54
请问工作内容没分配是什麽意思?小弟程式刚入门,很多不懂的地方
※ 编辑: benbchung (59.126.14.155), 05/11/2016 20:38:52