不能隐式地将类型'system.timespan'转换为double

时间:2017-03-27 12:17:53

标签: c# timer

我一直在尝试使用以下timer(小时,分钟,秒)向我的代码添加timespan。但无法理解为什么我一直有以下错误:

  

无法将类型'System.timespan'隐式转换为double。

这是我的代码。

public static void Main(string[] args)
{
    System.Timers.Timer MyTimer = new System.Timers.Timer();
    MyTimer.Elapsed += new ElapsedEventHandler(onTimedEvent);
    MyTimer.Interval = new TimeSpan(0,0,5000);
    MyTimer.Enabled = true;
} 

如果我将Mytimer间隔设置为单个值,则上述操作会毫无问题地运行,如下所示。

 Mytimer.Interval = 5000;

3 个答案:

答案 0 :(得分:8)

您必须匹配类型,Interval是毫秒(double)而不是TimeSpan。所以你可以这样做:

MyTimer.Interval = new TimeSpan(0,0,5000).TotalMilliseconds;

MyTimer.Interval = 5000; 
// assuming you meant 5000 milliseconds above and not 5000 seconds
// if not multiple by 1000 for seconds, again by 60 for minutes, again by 60 for hours, etc

答案 1 :(得分:0)

间隔是双倍而不是时间跨度。

答案 2 :(得分:0)

Timer中定义的区间属性,以便我们可以指定双值

[TimersDescriptionAttribute("TimerInterval")]
[SettingsBindableAttribute(true)]
public double Interval { get; set; }