C# 如何使这些if语句在c语言中运行良好#

C# 如何使这些if语句在c语言中运行良好#,c#,C#,我已经修改了我的代码,使其可以执行,但是它链接到了一个计时器,并将尝试一次又一次地执行,直到失去计时条件。我尝试用一个名为“intLimiter”的变量在系统上设置一个“锁”,以强制序列在一次执行后停止,但锁似乎不起作用 if (DateTime.Now.Hour == intAlarmHour && DateTime.Now.Minute == intAlarmMinute) { if (intLimiter == 1)

我已经修改了我的代码,使其可以执行,但是它链接到了一个计时器,并将尝试一次又一次地执行,直到失去计时条件。我尝试用一个名为“intLimiter”的变量在系统上设置一个“锁”,以强制序列在一次执行后停止,但锁似乎不起作用

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();                       
        }
               ...
    }
}

根据我从你的问题中了解到的情况,你希望将if语句分开,以便同时工作。。。 你能做的就是为每一条语句创建新的“线程”,这将使你能够一次运行所有的语句

对于线程,请确保包含名称空间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语句执行此操作,它们将一起运行,每个都在一个线程上。。。 如果这不是你问题的答案,请原谅,但与内容相对应的标题对我来说确实有点模糊。。。
但如果是这样的话,这篇文章将帮助您理解多线程。

从我看到的情况来看,您正在检查小时和分钟,因此,如果它在某种计时器或循环中,它将在一整分钟内被多次调用。你可能只想添加一个标志来触发它一次,这几乎是不可能的。非常不清楚。一个建议,您是否尝试过
DateTime.Now.Hour>=intAlarmHour&&DateTime.Now.Minute>=intAlarmMinute
?可能是某些内容没有同步到足以检查准确的
=
一些建议:不要使用
radTG.Checked==true
。只要
radTG.选中就足够了。另外,
intAlarmHour
是不好的命名。试试
alarmHour
。我注意到nawfal编辑了我原来的帖子,更改了代码。我尝试了修改过的代码,它是有效的,但需要注意的是,无论播放什么歌曲,程序都会变得无响应。这对于个人来说是很好的,因为我的意思是,这些都是很好的歌曲,但我怀疑我的教授是否会接受。有什么问题吗?@AarronDixon我没有按照原意修改代码。我只是把它缩短了。顺便说一句,这里的答案太长,但是你应该尝试在背景线程中播放这首歌,以使线程响应。搜索后台工作人员。有很多这样的例子。或者尝试声音播放器的另一个
播放
重载。
using System.Threading;