C#:同时执行多个计时器

时间:2014-01-17 14:12:34

标签: c#

我有三个标签控件,在For循环的帮助下,我编写了一个方法,将控件从窗体顶部移动到底部。我有三个计时器,每个都反复移动一个控件,但问题是它们一个接一个地执行。

我希望时间同时执行,即所有三个标签同时从表格顶部向右移动。

注意:每次调用计时器后,我都会设置一个随机对象,在表单顶部随机重置位置。

2 个答案:

答案 0 :(得分:6)

然后不要使用三个计时器。只需使用一个计时器并将你的代码放入它的Tick事件中。

根据您的代码,您可以执行以下操作,在方法之外定义Random变量,只使用timer1_Tick事件,您可以删除其他计时器:

Random random = new Random(); 
private void timer1_Tick(object sender, EventArgs e)
{
        int X = random.Next(0, 1230); 
        int y = X; 
        label2.Location = new Point(X, 5);
        label3.Location = new Point(X, 5);
        for (int i = 5; i <= 470; i++)
        {
            label2.Location = new Point(y, i);
            label3.Location = new Point(y, i);
            Thread.Sleep(1);
        }
}

答案 1 :(得分:0)

使用一个计时器,如果你想要花哨,请勾选执行各种回调。这样你就可以在运行时定义tick中的内容。