【问题标题】:C# when mouse move event, time loop stopsC#当鼠标移动事件时,时间循环停止
【发布时间】:2017-05-13 17:40:16
【问题描述】:

我创建了一个游戏,你需要射击一个每隔 0.5 秒在屏幕上随机移动的鼹鼠。

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

我有一个刷新到屏幕的鼠标移动事件, 以及每 0.5 秒更新一次表单的时间循环事件。我怎样才能让这两个事件在不相互干扰的情况下运行?

【问题讨论】:

  • 你也可以分享你的代码吗?

标签: c# multithreading events event-handling


【解决方案1】:

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

You can look here

【讨论】:

    【解决方案2】:

    我无法正确理解您,但是根据您提供的线索,我可以建议您通过使用一种方法线程进程来解决问题。由于您要更改的是UIElement,因此您必须使用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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-23
      • 1970-01-01
      • 1970-01-01
      • 2010-09-18
      • 1970-01-01
      相关资源
      最近更新 更多