while 循环中更改的标签不会更新 UI

2023-11-29

运行此代码时:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApplication1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
    public MainWindow()
    {
        while (true)
        {

            InitializeComponent();

            DateTime dtCurrentTime = DateTime.Now;
            label1.Content = dtCurrentTime.ToLongTimeString();
        }
    }

}
}

频繁更新标签,窗口永远不会打开。但是,当我删除 while 循环时,它可以工作,但它只是不更新​​标签...那么我将如何更新标签以显示当前时间而不需要任何用户输入? 谢谢, L


问题是你阻塞了你的 UI 线程。

您无法在 UI 线程上以这种方式循环运行代码。你需要设置一个Timer,并更新计时器中的标签,以允许 UI 线程继续执行和处理消息。

这可能看起来像:

public MainWindow()
{
        InitializeComponent();


        DispatcherTimer timer = new DispatcherTimer 
            {
                Interval = TimeSpan.FromSeconds(0.5)
            };
        timer.Tick += (o,e) =>
            {
                DateTime dtCurrentTime = DateTime.Now;
                label1.Content = dtCurrentTime.ToLongTimeString();
            };
        timer.IsEnabled = true;
}

这将导致计时器每秒更新 UI 两次。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

while 循环中更改的标签不会更新 UI 的相关文章

  • 如何使 Windows 窗体的关闭按钮不关闭窗体但使其不可见?

    该表单有一个 NotifyIcon 对象 当用户单击 关闭 按钮时 我希望表单不关闭而是变得不可见 然后 如果用户想再次查看该表单 可以双击系统托盘中的图标 如果用户想关闭表单 可以右键单击该图标并选择 关闭 有人可以告诉我如何使关闭按钮不
  • 是否可以强制 XMLWriter 将元素写入单引号中?

    这是我的代码 var ptFirstName tboxFirstName Text writer WriteAttributeString first ptFirstName 请注意 即使我使用 ptFirstName 也会以双引号结束 p
  • Qt-Qlist 检查包含自定义类

    有没有办法覆盖加载自定义类的 Qt QList 的比较机制 即在 java 中你只需要重写一个比较方法 我有一个带有我的自定义类模型的 QList QList
  • 从父类调用子类方法

    a doStuff 方法是否可以在不编辑 A 类的情况下打印 B did stuff 如果是这样 我该怎么做 class Program static void Main string args A a new A B b new B a
  • WPF 中的调度程序和异步等待

    我正在尝试学习 WPF C 中的异步编程 但我陷入了异步编程和使用调度程序的困境 它们是不同的还是在相同的场景中使用 我愿意简短地回答这个问题 以免含糊不清 因为我知道我混淆了 WPF 中的概念和函数 但还不足以在功能上正确使用它 我在这里
  • 如何将图像和 POST 数据上传到 Azure 移动服务 ApiController 终结点?

    我正在尝试上传图片and POST表单数据 尽管理想情况下我希望它是json 到我的端点Azure 移动服务应用 我有ApiController method HttpPost Route api upload databaseId sea
  • 使用 System.Text.Json 即时格式化 JSON 流

    我有一个未缩进的 Json 字符串 例如 hash 123 id 456 我想缩进字符串并将其序列化为 JSON 文件 天真地 我可以使用缩进字符串Newtonsoft如下 using Newtonsoft Json Linq JToken
  • 如何返回 json 结果并将 unicode 字符转义为 \u1234

    我正在实现一个返回 json 结果的方法 例如 public JsonResult MethodName Guid key var result ApiHelper GetData key Data is stored in db as v
  • 在 ASP.NET Core 3.1 中使用包含“System.Web.HttpContext”的旧项目

    我们有一些用 Net Framework编写的遗留项目 应该由由ASP NET Core3 1编写的API项目使用 问题是这些遗留项目正在使用 System Web HttpContext 您知道它不再存在于 net core 中 现在我们
  • 如何将图像路径保存到Live Tile的WP8本地文件夹

    我正在更新我的 Windows Phone 应用程序以使用新的 WP8 文件存储 API 本地文件夹 而不是 WP7 API 隔离存储文件 旧的工作方法 这是我如何成功地将图像保存到 共享 ShellContent文件夹使用隔离存储文件方法
  • 从路径中获取文件夹名称

    我有一些路c server folderName1 another name something another folder 我如何从那里提取最后一个文件夹名称 我尝试了几件事 但没有成功 我只是不想寻找最后的 然后就去休息了 Thank
  • Github Action 在运行可执行文件时卡住

    我正在尝试设置运行google tests on a C repository using Github Actions正在运行的Windows Latest 构建过程完成 但是当运行测试时 它被卡住并且不执行从生成的可执行文件Visual
  • 如何将单个 char 转换为 int [重复]

    这个问题在这里已经有答案了 我有一串数字 例如 123456789 我需要提取它们中的每一个以在计算中使用它们 我当然可以通过索引访问每个字符 但是如何将其转换为 int 我研究过 atoi 但它需要一个字符串作为参数 因此 我必须将每个字
  • 实体框架 4 DB 优先依赖注入?

    我更喜欢创建自己的数据库 设置索引 唯一约束等 使用 edmx 实体框架设计器 从数据库生成域模型是轻而易举的事 现在我有兴趣使用依赖注入来设置一些存储库 我查看了 StackOverflow 上的一些文章和帖子 似乎重点关注代码优先方法
  • 如何让Gtk+窗口背景透明?

    我想让 Gtk 窗口的背景透明 以便只有窗口中的小部件可见 我找到了一些教程 http mikehearn wordpress com 2006 03 26 gtk windows with alpha channels https web
  • 从固定文档中删除页面?

    如何从固定文档中删除页面 我添加这样的页面 Add page to pageContent PageContent pageContent new PageContent IAddChild pageContent AddChild fix
  • 为什么 C# Math.Ceiling 向下舍入?

    我今天过得很艰难 但有些事情不太对劲 在我的 C 代码中 我有这样的内容 Math Ceiling decimal this TotalRecordCount this PageSize Where int TotalRecordCount
  • ASP.NET MVC 6 (ASP.NET 5) 中的 Application_PreSendRequestHeaders 和 Application_BeginRequest

    如何在 ASP NET 5 MVC6 中使用这些方法 在 MVC5 中 我在 Global asax 中使用了它 现在呢 也许是入门班 protected void Application PreSendRequestHeaders obj
  • 使用按位运算符相乘

    我想知道如何使用按位运算符将一系列二进制位相乘 但是 我有兴趣这样做来查找二进制值的十进制小数值 这是我正在尝试做的一个例子 假设 1010010 我想使用每个单独的位 以便将其计算为 1 2 1 0 2 2 1 2 3 0 2 4 虽然我
  • 恢复上传文件控制

    我确实阅读了以下帖子 C 暂停 恢复上传 https stackoverflow com questions 1048330 pause resume upload in c 使用 HTTP 恢复上传 https stackoverflow

随机推荐

  • 如何访问 iFrame 中的 DOM 元素

    我正在编写一个 jQuery 插件 它需要能够针对 iFrame 中的 DOM 元素运行 我现在只是在本地测试这个 即 url 是 file example html 在 Chrome 中我一直点击 SecurityError 无法从 HT
  • 在 C# 中将 MM:SS 字符串转换为 HH:MM:SS

    我有这段代码可以很好地将 HH MM SS 转换为整数秒 for int i 0 i lt nrdaily Rows Count i double NRT TimeSpan Parse nrdaily Rows i 3 ToString T
  • 从 WiX 更改 XML 节点值

    我希望能够从 WiX 更改 XML 节点值 XML 结构如下所示
  • SSIS正在成功执行,但它似乎没有运行脚本任务部分

    我有一个 SSIS 包 它运行 SQL 查询并通过数据流任务将其导出到 csv 文件 创建 csv 后 我设置了一个 脚本任务 来连接到 SMTP 服务器并将 csv 文件作为附件发送 在我的本地计算机上 该包运行良好 但是当我将其加载到服
  • 未指定网络安全配置,使用平台默认值 - Android 日志

    我正在尝试通过 000webhost com 创建数据库 每当我从 android studio 运行应用程序时 我都会在事件日志中看到此消息 有谁知道如何解决这个问题 非常感激 我也有同样的问题 请将此行添加到清单中的应用程序标记中 我希
  • Espresso 不会等待 ViewPager 上的滑动操作完成

    Espresso 宣传的特点是它总是等待 Android 的 UI 线程空闲 这样你就不必处理任何计时问题 但我似乎发现了一个例外 设置是一个ViewPager与EditText在每个片段中 我想要 Espresso 将文本输入到EditT
  • 将系列转换为 Pandas DateTime [重复]

    这个问题在这里已经有答案了 D 10Aug49 21Jan45 15Sep47 13Jun52 将其转换为 pandas 日期 确保年份是 1900 年而不是 2000 年 到目前为止 我有这段代码可以转换并打印 pandas 日期 但世纪
  • Session_End 可以在窗口关闭时触发吗? (ASP.NET)

    我在网站上放置了一个 在线 计数器 并且遇到了这两个相互矛盾的来源 这个 我正在使用这个示例代码 http aspdotnetfaq com Faq How to show number of online users visitors f
  • Yii2 速率限制 API

    我担心 Yii2 速率限制 api 什么是速率限制 api 为什么使用它 这里有一些方法来自Yii2yii 大师能否用简单的话解释一下这些方法 我应该在何时何地在我的 api 中使用速率限制 public function getRateL
  • 如何改变变量赋值的较低索引?

    我想对具有较低索引的变量进行赋值 这就是我想做的 int i logic 63 0 data i someCalculatedNumber data 63 i 8 h0 我知道这不会编译 完成这项任务的最佳方法是什么 如果您希望将 LSB
  • 快速获取服务器时间

    有没有办法让服务器时间与 swift 我想根据服务器设置静态时间 这样 即使用户更改时区和日期 也没关系 视图控制器上显示的时间将是基于服务器的时间而不是 NSDate let today NSDate println today 目前 如
  • 对 pandas 列的多个子集高效运行回归分析

    我本可以选择一个较短的问题 只关注这里的核心问题 即列表排列 但我带来的原因统计模型 and pandas问题是 可能存在用于逐步回归的特定工具 同时具有存储所需回归输出的灵活性 就像我将在下面向您展示的那样 但效率更高 至少我希望如此 给
  • Json.net - 填充字典时如何保留字典值引用?

    我想从 JSON 文件填充字典中包含的对象 同时保留对象引用本身 Json net 关于 PreserveReferencesHandling 的文档明确指出 如果类型实现 System Runtime Serialization ISer
  • 是否有一个 java 类用于使用日期构造 cron 表达式?

    我需要根据表单中的用户输入构建一个 cron 表达式 所以我有一个日期选择器和一个选择框来选择频率 我可以很容易地从中构建一个 cron 表达式 但感觉就像我在重新发明轮子 有适合我的课程吗 类似方法的东西 public String cr
  • 检测键控状态变化

    我是数据流编程模型的新手 在思考我认为应该是一个简单的用例时遇到一些困难 我有一个从 Pub Sub 读取实时数据的管道 该数据包含带有 简化的 序列号和状态 UP 或 DOWN 的设备状态 保证设备至少每 5 分钟发送一次其状态 但设备当
  • 如何获取从最后一个匹配到文件末尾的行?

    需要打印最后一个匹配之后到文件末尾的行 比赛的数量可以是任意的 并且是不确定的 我有一些文字 如下所示 MARKER aaa bbb ccc MARKER ddd eee fff MARKER ggg hhh iii MARKER jjj
  • 如何在varchar中查找5位数字?

    基本上我只需要得到一个由空格分隔的 5 位数字 5 位数字可以位于 varchar 中的任何位置 示例 我有一个 varchar 列 其中包含 SQL 2008 表中的各种数据 travel visa 34322 LLL001 Coffee
  • 更改 .each() 在 Firefox 和 chrome 中的顺序

    我有一个返回 JSON 编码数据数组的 Web 服务 然后我使用 jQuery 的 each 函数来迭代该数组 但在 Firefox 中它向下迭代 而在 Chrome 中它向上迭代 从网络服务返回的数据是 data 610 id 610 u
  • 整数的scanf获取字符时如何处理异常

    当输入是字符时 下面的简单程序将给出无限循环 尽管它意味着区分字符和数字 如何测试是否scanf使用返回值获取应该是数字的字符scanf include
  • while 循环中更改的标签不会更新 UI

    运行此代码时 using System using System Collections Generic using System Linq using System Text using System Windows using Syst