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

Posted

技术标签:

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

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

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

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

【问题讨论】:

你也可以分享你的代码吗? 【参考方案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

【讨论】:

以上是关于C#当鼠标移动事件时,时间循环停止的主要内容,如果未能解决你的问题,请参考以下文章

鼠标移动时滚动窗口

C#自定义控件的鼠标事件问题

c# 在 winform 开发中,当鼠标移动到某图片时,该图片自动隐藏,移开时,又显示出来。求代码。

C# 挂钩以获取原始鼠标/键事件

Chrome浏览器下JQuery实现鼠标左键按下移动,鼠标左键抬起停止移动功能的问题

C#中,当鼠标移动到按钮上时,按钮边框闪烁,鼠标移开时恢复正常,急急急