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# 在 winform 开发中,当鼠标移动到某图片时,该图片自动隐藏,移开时,又显示出来。求代码。