C#定时器函数不允许int值?请求System.CompontentModel.IContainer?

时间:2016-05-01 12:42:50

标签: c# .net

我已经创建了下面的延迟功能,目的是在我的" min"的某些范围内创建延迟。和" max"输入。

    private void delay(int min, int max)
    {
        Random rnd = new Random();
        int timerLength = rnd.Next(min, max);
        Timer timer = new Timer(timerLength);
        timer.Start();
    }

我在第

行收到错误
Timer timer = new Timer(timerLength);

由于编译器无法将计时器长度从int转换为" System.ComponentModel.IContainer"。我试图将输入值转换为IContainers但没有成功,因为随机函数只允许int值。

是否有解决方法,以便定时器函数可以采用int?感谢。

2 个答案:

答案 0 :(得分:3)

来自msdn

  

使用Timer构造函数可以将Timer与任意内容相关联   Container对象。通过将Timer这样关联起来,你可以移交   控制TimerContainer的生命周期。这可以   如果您在应用程序中使用许多组件并且需要,则非常有用   同时处理所有这些。例如,如果你   将ToolTipImageListTimerContainer相关联,   调用Container上的Dispose将强制处理所有这些   组件也是如此。

所以,如果我理解你,你正试图设置Timer的间隔。在这种情况下,您需要使用' Interval`属性:

private void delay(int min, int max)
{
    Random rnd = new Random();
    int timerLength = rnd.Next(min, max);
    Timer timer = new Timer();
    timer.Interval = timerLength; // the value in milliseconds.
    timer.Start();
}

答案 1 :(得分:0)

以下内容应该有效:

$max = (count($images) < 5) ? count($images) : 5;
$randomImageKeys = array_rand($images, $max);
for ($randomImageKeys as $key) {
   echo '<img src="'.$images[$key].' class="image">';
}

编辑:修复格式