C# 延迟2秒删除项目

C# 延迟2秒删除项目,c#,multithreading,winforms,C#,Multithreading,Winforms,我有一个启用了复选框的列表视图。 当用户检查一个项目时,我需要在两秒钟后删除该项目,而不锁定屏幕 我怎么能做到?我需要使用线程吗?在给定的时间量后,使用计时器执行一些操作。因为这是异步执行操作,而不是同步执行,所以UI线程不会被阻塞 另一个选项是利用等待: private async void checkbox_CheckedChanged(object sender, EventArgs e) { if (checkbox.Checked) { await Ta

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


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

在给定的时间量后,使用
计时器执行一些操作。因为这是异步执行操作,而不是同步执行,所以UI线程不会被阻塞

另一个选项是利用
等待

private async void checkbox_CheckedChanged(object sender, EventArgs e)
{
    if (checkbox.Checked)
    {
        await Task.Delay(2000);
        RemoveItem();
    }
}
使用
System.Windows.Forms
命名空间中的


这将在时间过去后在主线程中触发事件,因此您在尝试从其他线程访问表单时不会遇到任何问题。

添加计时器并单击事件删除选中项,无需线程