在C#中使用计时器时如何延迟执行

时间:2015-02-09 06:27:22

标签: c# timer

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

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

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

试试这个

Task.Factory.StartNew(() =>
{

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

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