imp*_*101 4 c# visual-studio winforms
目标是在按下按钮后将布尔变量保持在高状态 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;
}
Run Code Online (Sandbox Code Playgroud)
您可以使事件异步并使用Task.Delay(2000)等待 2 秒(2000 毫秒),然后将布尔值置于 false 状态:
using System.Threading.Tasks;
private async void button1_MouseUp(object sender, EventArgs e)
{
await Task.Delay(2000);
variable = False;
}
Run Code Online (Sandbox Code Playgroud)
这将确保 GUI 保持响应,并且实际上会引入延迟。
这是对异步等待概念的一些补充阅读,可能值得花时间在某一天;)
| 归档时间: |
|
| 查看次数: |
138 次 |
| 最近记录: |