2015-02-09 22 views
-1

我正在使用定时器从相机捕获图像。 我正在对这个捕获图像进行一些处理,并检测这个图像上的一个点,并将该点传递给一个机器人。在通过这一点之前,我必须等待一些可变的时间。目前我使用Thread.sleep(waitingTime)。但是这会使我的UI在一段时间内无法响应。我该如何延迟我的代码?如何在C#中使用定时器时延迟执行#

private void timer1_Tick(object sender, EventArgs e) 
{ 
    Image<Bgr, Byte> imSource = cap.RetrieveBgrFrame(); 

    //some processing here 
    //-------------------- 
    //-------------------- 

    Thread.Sleep(waitingTime); 
    sendToRobot(data); 
} 
+2

为什么你需要延迟? :) – 2015-02-09 06:29:26

回答

0

试试这个

Task.Factory.StartNew(() => 
{ 

    Thread.Sleep(waitingTime); 
    sendToRobot(data); 
}); 

这应该只要sendToRobot更新仔细使用正确的线程的UI工作。

0

也许尝试任务。延迟([delayperiod]);