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

C# 在C中使用计时器时如何延迟执行#,c#,timer,C#,Timer,我正在用定时器从照相机上捕捉图像。 我正在对这张捕获的图像进行处理,检测图像上的一个点,并将该点传递给机器人。在通过这一点之前,我必须等待一些可变的时间。目前我使用Thread.sleep(等待时间)。但这将使我的UI在一段时间内不可用。我如何在代码中进行延迟 private void timer1_Tick(object sender, EventArgs e) { Image<Bgr, Byte> imSource = cap.RetrieveBgrFrame();

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

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

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

    Thread.Sleep(waitingTime);
    sendToRobot(data);
}
private void timer1\u勾选(对象发送方,事件参数e)
{
Image imSource=cap.RetrieveBgrFrame();
//这里有些加工
//--------------------
//--------------------
线程。睡眠(等待时间);
sendToRobot(数据);
}
也许可以试试这个任务。延迟([延迟期])

试试这个

Task.Factory.StartNew(() =>
{

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

只要sendToRobot使用正确的线程小心地更新UI,这应该可以工作。

为什么需要延迟?:)