2014-02-27 61 views
0

我使用下面的代码,因为它只能与大于1的int值一起使用。如何将毫秒延迟添加到我的TimeSpan?

有没有人有想法可以用millisecond价值甚至毫不拖延地改变它?或任何其他替代方法?

DispatcherTimer timer = new DispatcherTimer(); 
timer.Interval = new TimeSpan(0, 0, 0); 
timer.Tick += delegate 
{ 
    timer.Stop(); 
    // my image code generator 
    timer.Start(); 
}; 
timer.Start(); 
+3

即使你解决您的设置时间的问题,我不知道任何计时器的那分辨率低于15毫秒。你可能需要重新考虑你的架构。 –

+1

我认为你正在寻找'while(true){...}'大声笑 – cgTag

+0

@ProgrammerDan这是一个C#问题,而不是java问题。 –

回答

3

它具有该章节目标构造函数:

TimeSpan(Int32, Int32, Int32, Int32, Int32); 

所以:

new TimeSpan(0, 0, 0, 0, 1); 
+0

每1毫秒运行一次吗?我应该把承包商放在哪里? – BlueSky

+0

@BlueSky它将运行“与定时器最低分辨率一样快”,这取决于实施和环境。 DispatchTimer使用Dispatch队列,所以我期望最小分辨率至少为* 15ms。 [MSDN只说](http://msdn.microsoft.com/en-us/library/system.windows.threading.dispatchertimer.interval(v = vs.110).aspx):“定时器不保证准确执行当时间间隔发生时,但他们保证不会在时间间隔发生之前执行。“ – user2864740