延迟2秒删除项目

时间:2014-02-05 17:22:35

标签: c# multithreading winforms

我有一个启用了复选框的列表视图。 当用户检查项目时,我需要在两秒钟后删除此项目,而不锁定屏幕。

我怎么做?我需要使用线程吗?

2 个答案:

答案 0 :(得分:1)

在给定的时间后使用Timer执行某些操作。因为这是异步执行操作而不是同步操作,所以不会阻止UI线程。

另一种选择是利用await

private async void checkbox_CheckedChanged(object sender, EventArgs e)
{
    if (checkbox.Checked)
    {
        await Task.Delay(2000);
        RemoveItem();
    }
}

答案 1 :(得分:0)

使用System.Windows.Forms命名空间中的Timer control

这将在时间结束时触发主线程中的事件,因此尝试从其他线程访问该表单时不会有任何问题。