【发布时间】:2015-06-24 11:40:32
【问题描述】:
我有一个名为 Movement 的类,它在执行 Lead 方法时将表单上的图片框(左边的人)移动到随机位置。我还有一个方法可以移动另一个图片框(右边的黑家伙),叫做 SetMrShadowToMove。假设这两个图片框同时移动并同时到达随机点(两个图片框一个点)。
目前,这些方法使用计时器来移动图片框,但我的主要目的是有一个循环运行,直到图片框的坐标遇到随机点,同时使用 Thread.Sleep 延迟该过程并进行它的动画。
为此,我需要在不同的线程上运行这两种方法,这样我的 UI 线程就不会被冻结,并且这些方法会同时运行。
我的问题是我不知道如何在不同线程上运行这些方法,也不知道如何访问其他线程上的图片框(似乎这与调用和东西有关!)。
解决这个问题的最佳方法是什么?
【问题讨论】:
-
最好的办法是不使用winforms来创建游戏
-
这不是游戏,只是一个练习动画来学习多线程和其他一些东西。
标签: c# multithreading invoke