用鼠标点击或按键停止循环
本文关键字:循环 鼠标 | 更新日期: 2023-09-27 18:22:10
我正在开发一种在循环中播放声音的应用程序。我希望循环在鼠标点击或按键时停止,然后重新开始循环。我使用的是c#,.net。我面临的问题是循环在没有从鼠标/键盘捕获输入的情况下继续执行,直到它达到指定的最大值。我的代码是
for(soundVolume = 0; soundVolume < 10; soundVolume++)
{
sound.Play();
if(mouseClick == true)
{
soundVolume = 0;
}
}
您必须在UI线程之外的另一个线程中使用循环。
为了简单起见,我在这里使用了CheckForIllegalCrossThreadCalls=false
。但是如果你不使用它,你将面临一个错误,显示你想从另一个线程访问UI线程。必须以此处讨论的更好的方式处理
但是现在,这个示例代码满足了您的需要。
bool mouseClick =false;
private void Form1_Load(object sender, EventArgs e)
{
CheckForIllegalCrossThreadCalls = false;
}
private void Form1_MouseClick(object sender, MouseEventArgs e)
{
mouseClick = true;
}
private void button1_Click(object sender, EventArgs e)
{
var x=new Action(doit).BeginInvoke(null,null); //Do something in other thread that UI Thread
}
private void doit()
{
for(soundVolume = 0; soundVolume < 10; soundVolume++)
{
sound.Play();
if(mouseClick == true)
{
soundVolume = 0;
}
}
}
}