c# - 在winforms C#中按下按钮后如何保持 bool 变量高2秒

标签 c# visual-studio winforms

目标是在按下按钮后将 bool 变量保持在高状态 2 秒。

当 Mouse_Down 事件被触发时,变量应该处于高状态。在 MouseUp 事件被触发后,该变量在接下来的 2 秒内也应该是高的。所以基本上我想在这两个事件之间创建一个延迟。

有没有办法做到这一点?

bool variable;

private void button1_MouseDown(object sender, EventArgs e)
{
   variable = true; // This variable should be true for 2 seconds after mouseUp event is fired.
}

private void button1_MouseUp(object sender, EventArgs e)
{
   variable = False;
}

最佳答案

您可以使事件异步并使用 Task.Delay(2000)等待 2 秒(2000 毫秒),然后将 bool 值置于 false 状态:

using System.Threading.Tasks;

private async void button1_MouseUp(object sender, EventArgs e)
{
   await Task.Delay(2000);
   variable = False;
}

这将确保 GUI 保持响应,并且实际上会引入延迟。

这是一些 complementary reading to the concept of async await有一天可能值得花时间;)

关于c# - 在winforms C#中按下按钮后如何保持 bool 变量高2秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59387050/

相关文章:

c# - Array.GetLength() 和 Array.Length 有什么区别?

c# - 堆栈中的对象创建

c# - 我可以修改 setting.setting 文件中的值吗?

c# - DataGridView 在设计时未正确显示列标题

c# - 带有用户选择的 WinForm;走哪条路?

c# - 当 WinForms 应用程序从运行模式切换到设计模式时,我应该处理什么事件来执行代码

c# - 与 xaml View 模型交互

c# - 将属性映射到集合自动映射器的属性

visual-c++ - 在 MSVC 项目中,你推荐什么标志用于发布配置

c# - 如何跳过 IVsSingleFileGenerator 中的文件?