gpt4 book ai didi

C# 停止执行直到事件引发

转载 作者:太空宇宙 更新时间:2023-11-03 20:03:37 25 4
gpt4 key购买 nike

我需要停止执行程序,直到用户单击按钮。我正在进行离散事件模拟,现在的目标是提供说明情况的简单图形。当模拟到达值得展示的事件时,调用绘制情况的方法。我需要在用户单击按钮之前不跳回模拟核心的方法(仅在到达有趣的点时再次调用)。

最佳答案

您可以创建一个方法,该方法将返回一个 Task,该任务将在下一次单击特定按钮时完成,它可以通过使用 TaskCompletionSource 对象来完成.然后您可以等待该任务在单击特定按钮时继续执行您的方法:

public static Task WhenClicked(this Button button)
{
var tcs = new TaskCompletionSource<bool>();
EventHandler handler = null;
handler = (s, args) =>
{
tcs.TrySetResult(true);
button.Click -= handler;
};
button.Click += handler;
return tcs.Task;
}

这使您能够编写:

DoSomething();
await button1.WhenClicked();
DoSomethingElse();

关于C# 停止执行直到事件引发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25533229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com