C#当鼠标移动事件时,时间循环停止

时间:2016-12-29 11:39:41

标签: c# multithreading events event-handling

我创造了一个游戏,你需要拍摄一个每隔0.5秒在屏幕上随机移动的痣。

当我将鼠标移动到屏幕而不停止时,时间循环似乎会冻结,直到鼠标停止移动。

我有一个鼠标移动事件,刷新到屏幕, 以及每0.5秒更新一次表格的时间循环事件。如何在不干扰彼此的情况下运行这两个事件?

2 个答案:

答案 0 :(得分:0)

我无法正确理解你,但通过你给出的线索,我可以建议你通过一个方法线程进程就可以做到这一点。因为你要改变的元素你必须使用Begininvoke方法。

                public delegate void InvokeDelegate();

                 private void Invoke_Click(object sender, EventArgs e)
                    {
                      mole.BeginInvoke(new InvokeDelegate(InvokeMethod));
                    }
                       public void InvokeMethod()
                     {
                      //  change your mole position here
                       }

答案 1 :(得分:0)

您可以使用Backgroundworker。订阅Backgroundworker的DoWork活动。您可以计算您的计时器或观看该事件。

You can look here