如何让这些if语句在c#中很好地发挥作用

时间:2013-11-04 06:04:27

标签: c#

我已经将我的代码修改到它将执行的程度,但它已经链接到一个计时器,并将尝试反复执行直到定时条件丢失。我尝试用一​​个名为“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();                       
        }
               ...
    }
}

1 个答案:

答案 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是一篇文章,可以帮助您理解多线程。