【问题标题】:Release button while other button execute methods WPF C#释放按钮,而其他按钮执行方法 WPF C#
【发布时间】:2020-04-29 23:18:59
【问题描述】:

我有以下问题: 我必须按钮。 单击第一个按钮后,程序开始一个while循环。 我喜欢在单击第二个按钮后离开这个 while 循环。

我该怎么做?

有人有想法吗?

感谢enter image description here

【问题讨论】:

  • 你不能。 while 循环将阻塞主 ui 线程,因此无法捕获其他输入。您必须在另一个线程中移动循环(例如 Timer、Task、ecc 都是可以帮助您执行此操作的类)。然后按钮启动线程并停止它(即使在'while(flag)'循环中更改标志一样简单)
  • 使用 DispatcherTimer。它有一个用于控制频率的 Interval 属性、一个附加处理程序方法的 Tick 事件以及 Start 和 Stop 方法。
  • @Clemens 你能给我更多的信息吗?
  • 还需要答案吗?

标签: c# wpf wpf-controls


【解决方案1】:

您需要使用多个线程来完成此操作。我建议阅读该主题并查看一些示例。

有许多不同的类/系统可以做到这一点,因为随着时间的推移会开发出更新、更好的类/系统。 BackgroundWorker 是我不推荐用于新开发的旧系统示例。我相信当前的最佳实践(在撰写本文时)是使用 Dispatcher(在 WPF 中)以及 async/await

这里有一些文档:

MSDN - Threading Model
Building Responsive UI using Async Await in C#

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-31
    • 2012-06-02
    • 1970-01-01
    相关资源
    最近更新 更多