我已经将我的代码修改到它将执行的程度,但它已经链接到一个计时器,并将尝试反复执行直到定时条件丢失。我尝试用一个名为“intLimiter”的变量在系统上放置一个“lock”,强制序列在一次执行后停止,但锁似乎不起作用。
if (DateTime.Now.Hour == intAlarmHour && DateTime.Now.Minute == intAlarmMinute)
{
if (intLimiter == 1)
{
intLimiter = 2;
if (radTG.Checked)
{
System.Media.SoundPlayer sound = new System.Media.SoundPlayer(Properties.Resources.Celldweller___Tough_Guy);
sound.Play();
}
...
}
}
答案 0 :(得分:0)
根据我对你的问题的理解,你想把if语句分开来同时工作...... 你可以做的就是为每个语句创建新的'Threads',这样你就可以一次运行所有语句......
对于线程,请确保包含命名空间System.Threading。
using System.Threading;
现在你应该用你的代码做什么:
...
if (DateTime.Now.Hour == intAlarmHour && DateTime.Now.Minute == intAlarmMinute)
{
if (radTG.Checked == true)
{
Thread radTG = new Thread(radTGChecked);
radTG.Start();
}
...
}
...
public void radTGChecked() {
SoundPlayer sound = new SoundPlayer(Properties.Resources.Celldweller);
sound.PlaySync();
}
对下面的所有if语句执行此操作,它们将一起运行,每个都在一个线程上... 请原谅我,如果这不是你问题的答案,但对应内容的标题对我来说似乎有点模糊...... 但如果确实如此,here是一篇文章,可以帮助您理解多线程。