首页 新闻 会员 周边 捐助

求大神指导 winform 多线程问题

0
悬赏园豆:80 [已解决问题] 解决于 2015-03-31 18:45

我在代码中用了多线程 还有锁,  不知道是哪的问题

问题补充:

我是要写这样一个游戏,结果卡住了现在

春哥/的主页 春哥/ | 初学一级 | 园豆:130
提问于:2015-03-31 15:06
< >
分享
最佳答案
0

你对方法使用了锁,但是你对整个窗口使用了锁了吗,或者整个窗口方法里面的东西都锁住了吗,你一点点跟过去啊,看最外面咋看

收获园豆:10
代码小兵的成长 | 菜鸟二级 |园豆:303 | 2015-03-31 15:10

谢谢 ,我在代码中用了两个  系统的timer, 不是winfrom控件, 所以一步一步调试不出来,一直子啊两个定时器中跳来跳去的

春哥/ | 园豆:130 (初学一级) | 2015-03-31 15:22

@春哥/: 反正多跟一下至少对应准点才能问问题,看楼下和你交流了那么多,也出不来,哈哈

代码小兵的成长 | 园豆:303 (菜鸟二级) | 2015-03-31 15:44

@代码小兵的成长: 恩恩,我在看看,梳理下问题再请教

春哥/ | 园豆:130 (初学一级) | 2015-03-31 15:48
其他回答(2)
1

看中文,你调用 GetHdc 方法后没有 ReleaseHdc 就使用了 Graphics 对象。

收获园豆:70
Launcher | 园豆:45050 (高人七级) | 2015-03-31 15:20

没有用这个呢,

支持(0) 反对(0) 春哥/ | 园豆:130 (初学一级) | 2015-03-31 15:21

@春哥/: 你有使用 Graphics 对象吗?

支持(0) 反对(0) Launcher | 园豆:45050 (高人七级) | 2015-03-31 15:21

@Launcher: 用了的

支持(0) 反对(0) 春哥/ | 园豆:130 (初学一级) | 2015-03-31 15:22

@春哥/: 你的 Graphics 对象是如何创建的?

支持(0) 反对(0) Launcher | 园豆:45050 (高人七级) | 2015-03-31 15:22

使用两个Graphics画图, 分别给两个Bitmap画图

支持(0) 反对(0) 春哥/ | 园豆:130 (初学一级) | 2015-03-31 15:23

@Launcher: Graphics.FromIamge(newBmp);

支持(0) 反对(0) 春哥/ | 园豆:130 (初学一级) | 2015-03-31 15:24

@春哥/: 我问你的是你的 Graphics 对象是如何创建的?

支持(0) 反对(0) Launcher | 园豆:45050 (高人七级) | 2015-03-31 15:24

@Launcher:   Graphics  g= Graphics.FromIamge(newBmp);  通过Bitmap对象来创建的

支持(0) 反对(0) 春哥/ | 园豆:130 (初学一级) | 2015-03-31 15:26

@春哥/: var g = Graphics.FromIamge(newBmp);

使用到 g 的地方 lock 起来。

支持(0) 反对(0) Launcher | 园豆:45050 (高人七级) | 2015-03-31 15:26

@Launcher:恩,应该都 锁了,我在西看看

支持(0) 反对(0) 春哥/ | 园豆:130 (初学一级) | 2015-03-31 15:28

@Launcher: 为什么要用var

 

public void DrawGameObject(Graphics g)
{
lock (lockObj)
{

// g.Clear(Color.Red);
}

lock (lockObj)
{
this.BG.Draw(g);
}

lock (lockObj)
{
for (int i = 0; i < listEmemy.Count; i++)
{
listEmemy[i].Draw(g);
}
}
lock (lockObj)
{
//this.Sp.Draw(g);
}

 

都锁了

支持(0) 反对(0) 春哥/ | 园豆:130 (初学一级) | 2015-03-31 15:30

@春哥/: 完全可以锁一次哇,把几段代码放在一起呢~

支持(0) 反对(0) 幻天芒 | 园豆:37207 (高人七级) | 2015-03-31 15:35

@幻天芒: 哦,谢谢,我试试,对锁用的不太多了,

支持(0) 反对(0) 春哥/ | 园豆:130 (初学一级) | 2015-03-31 15:36

@春哥/: 你就贴了一个方法,看不出你的 g 是不是还在别处使用了,还有你的 this.BG ,listEmemy[i],this.Sp 这都是啥类型的对象?

支持(0) 反对(0) Launcher | 园豆:45050 (高人七级) | 2015-03-31 15:38

@春哥/: 我也用得不多,哈哈。

支持(0) 反对(0) 幻天芒 | 园豆:37207 (高人七级) | 2015-03-31 15:40

@Launcher: 你看图片啊,BG :是 游戏背景 、  ListEnemy是敌人   ,  后台代码是没问题的,就是前台   只有这个地方用了画笔 Graphics

支持(0) 反对(0) 春哥/ | 园豆:130 (初学一级) | 2015-03-31 15:42

@春哥/: 对不起,我愚笨,看不懂图片,只看得懂代码。你还是把异常的 StackTrace 给贴出来吧!我们一步到位的定位到出错的代码。

支持(0) 反对(0) Launcher | 园豆:45050 (高人七级) | 2015-03-31 15:48
0

释放了再用

wongdavid | 园豆:394 (菜鸟二级) | 2015-04-01 09:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册