发生新事件时如何停止旧事件

本文关键字:事件 何停止 新事件 | 更新日期: 2023-09-27 17:56:08

我有 2 个按钮点击事件。

void Button1_click(...)
{
    //Do somethings
    Foo();
}
void Button2_Click(...)
{
    //Do somethings
    Foo();
}

函数 Foo() 需要 1 分钟以上才能完成。

当我单击按钮 1 时,然后单击按钮 2。如何在 Button1_click 中停止 Foo() 并仅在Button2_click上运行 Foo()?

发生新事件时如何停止旧事件

您应该在单独的线程上运行Foo,并在UI线程完成后调用更新,并使用取消令牌随时停止给定的操作。类似的帖子在这里 如何在 C# 中从另一个线程更新 GUI?