通过其他网站的一些参考,我开发了一个代码,用于检查商品是否可供销售。
如果项目不可用,它应该在背景中发出一声嘟嘟声和一个对话框(重试/取消)。
此外,如果用户点击重试,则不应停止发出哔哔声。
否则单击取消应停止后台的哔声。
我使用的代码
if()
{
Item exists code
}
else
{
//Item Not found
retry();
}
public void retry()
{
Thread beepThread = new Thread(new ThreadStart(PlayBeep));
beepThread.IsBackground = true;
if (MessageBox.Show("Item not found", "Alert", MessageBoxButtons.RetryCancel) == DialogResult.Retry)
{
beepThread.Start();
retry();
}
else
{
beepThread.Abort();
Console.Beep(500, 1);
return;
}
}
private void PlayBeep()
{
Console.Beep(500, int.MaxValue);
}
使用上面的代码,当我点击重试时播放声音,但我希望它在进入Else条件时立即播放(当找不到项目时)
有什么建议?
答案 0 :(得分:2)
您应该在消息框出现之前开始发出哔声。为了不使用太多未使用的threads
,您必须在两种情况下都将其中止
最后我建议使用while(true)
循环以获得无尽的哔声。
public void retry()
{
Thread beepThread = new Thread(new ThreadStart(PlayBeep));
beepThread.IsBackground = true;
beepThread.Start();
if (MessageBox.Show("Item not found", "Alert", MessageBoxButtons.RetryCancel) == DialogResult.Retry)
{
beepThread.Abort();
retry();
}
else
{
beepThread.Abort();
Console.Beep(500, 1);
return;
}
}
private void PlayBeep()
{
while(true)
{ Console.Beep(500, int.MaxValue); }
}