您可以从另一个线程访问 UI 元素吗? (未设置)

2024-03-04

我在 google/here 上看到很多关于从另一个线程更新 UI 元素的线程。

如果我只想获取复选框的值怎么办?

我可以做到这一点而不需要做任何特别的事情吗?


Edit: 看来我得收回之前写的东西了。尝试了以下方法:

添加了一个名为的文本框myTextBox并尝试检索的值Text财产:

Thread t = new Thread(
    o =>
    {
        Thread.Sleep(2000);                    
        string value = myTextBox.Text;
        Thread.Sleep(2000);
    });
t.Start();

并且应用程序(WPF)似乎在 2 秒后崩溃。使用调度程序的工作原理:

Thread t = new Thread(
    o =>
    {
        Thread.Sleep(2000);
        myTextBox.Dispatcher.BeginInvoke(
            (Action)(() => { string value = myTextBox.Text; }));
        Thread.Sleep(2000);
    });
t.Start();

因此,在从 GUI 组件读取值时,您仍然需要通过调度程序线程,至少在 WPF 中是这样。

第二次编辑: 这样就好多了。显然,对经典 WinForms 重复实验表明,它可以读取Text未使用的财产Invoke/BeginInvoke。有趣的是,似乎设置属性也可以正常工作(无需调用),尽管我敢打赌它不是线程安全的,并且应用程序不会因某种原因抱怨。

底线:在任何情况下,在与其他线程的 GUI 组件交互时使用调度程序都是一个好主意,因为它可以确保读/写序列化到单个线程,这样就不会出现线程安全问题。

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

您可以从另一个线程访问 UI 元素吗? (未设置) 的相关文章

  • 在调用堆栈中看到大量 clr!CLR Semaphore::Wait

    我们看到很多像下面这样的调用堆栈 我可以知道什么条件 情况会发生这种情况吗 OS Thread Id 0x48654 559 Current frame ntdll NtWaitForSingleObject 0xa Child SP Re
  • 如何启动异步任务对象

    我想开始收集Task同时处理对象并等待所有对象完成 下面的代码显示了我想要的行为 public class Program class TaskTest private Task createPauseTask int ms works w
  • 将 Python 控制台集成到 GUI C++ 应用程序中

    I m going to add a python console widget into a C GUI below some other controls 许多类将暴露给 python 代码 包括一些对 GUI 的访问 也许我会考虑 P
  • 使用 size_t 值反向遍历向量

    我想以相反的方向遍历向量的值 如您所知 向量的大小为 size t 当我使用以下代码时 for size t r m size 1 r gt 0 r x r f r for size t c r 1 c lt m size c x r m
  • 求一个数的因数。无法得到准确的结果

    有人可以帮助纠正我的算法吗 我已经对几个数字进行了测试 但它没有输出完整的因式分解 对于具有大量因子的数字 它完全失败 int num 20 for int i 2 i lt num i if num i 0 cout lt lt i lt
  • 是否有一种算法可以在线性时间内计算数组反转?

    我知道有多少倒转 en wikipedia org wiki Inversion 28discrete mathematics 29 in an n 元素数组可以在 O n log n 操作使用增强型归并排序 http www geeksf
  • Qt QML 数据模型似乎不适用于 C++

    我一直在使用中的示例http doc qt digia com 4 7 qdeclarativemodels html http doc qt digia com 4 7 qdeclarativemodels html这是 QML 声明性数
  • 命名空间“Microsoft”中不存在类型或命名空间名称“Practices”

    我正在使用 Microsoft Visual Studio 2005 for c 我的代码中有以下命名空间 using Microsoft Practices EnterpriseLibrary using Microsoft Practi
  • 获取代码中的绑定结果

    我可能正在以错误的方式寻找这个 但是 有没有办法通过代码获取绑定的结果值 可能是一些显而易见的东西 但我就是找不到它 您只需致电ProvideValue的绑定方法 困难的部分是你需要通过有效的IServiceProvider到方法 编辑 实
  • 本地主机上的 .net HTTP_X_FORWARDED_FOR NULL

    抱歉 如果其他地方已经回答了这个问题 我找不到它 如果没有 我会尝试查找访问过该站点的机器的原始 IP 根据我的基本理解 变量HTTP X FORWARDED FOR无论代理和其他过滤器如何 都会显示用户的 IP 如果这是真的 我正在尝试对
  • 函数参数评估顺序[重复]

    这个问题在这里已经有答案了 在 C 和 C 中 函数参数的求值是否有固定的顺序 我的意思是 标准怎么说 是吗left to right or right to left 我从书中得到的信息令人困惑 是否有必要function call应该使
  • 带等待/通知的同步块与不带等待/通知的同步块之间的区别?

    如果我只是使用synchronized 不是wait notify方法 它仍然是线程安全的吗 有什么不同 Using synchronized使方法 块一次只能由一个线程访问 所以 是的 它是线程安全的 这两个概念是结合在一起的 而不是相互
  • 使用 QGraphicsScene 实现流畅的动画

    我希望我的问题并不总是同样的问题 我有一个 QGraphicsScene 它的项目是一些 QGraphicsPixmap 我用一个计时器来移动它们 每秒 SetX 10 我设置 10是因为窗口大100 使用这个解决方案我的动画不流畅 我想我
  • 将一个整数从 C 客户端发送到 Java 服务器

    我使用此代码将一个整数从我的 Java 客户端发送到我的 Java 服务器 int n rand nextInt 50 1 DataOutputStream dos new DataOutputStream socket getOutput
  • 只读有运行时开销吗?

    出于某种原因 我一直认为readonly字段有与其相关的开销 我认为这是 CLR 跟踪是否存在readonly字段是否已初始化 这里的开销是一些额外的内存使用量 用于跟踪状态以及分配值时的检查 也许我这么认为是因为我不知道readonly字
  • 数组与映射的性能

    我必须循环一个大数组中的元素子集 其中每个元素都指向另一个元素 问题来自于检测大图中的连接组件 我的算法如下 1 考虑第一个元素 2 将下一个元素视为前一个元素所指向的元素 3 循环直到没有发现新元素 4 考虑1 3中尚未考虑的下一个元素
  • 如何使用 xamarin 表单提示用户进行地理定位

    我正在 Xamarin Forms 应用程序中开发一个应用程序 需要请求地理位置权限 如果获得许可 它需要从设备获取地理位置数据 然后将地理位置坐标放入 Forecast io URL 我正在使用 James 的 Geolocator 插件
  • 为什么调试器只显示数组指针中的一个元素?

    首先 我知道new是执行此操作的 C 方法 我只是表明有不止一种方法可以重现此错误 而且两种方法都令人难以置信的令人沮丧 我有两种形式的源文件 我正在尝试调试另一个编程作业 但我并没有寻求帮助 基本上 我正在尝试重新实施set作为一个类 具
  • 如何在没有 Visual Studio 的情况下将新文件添加到 .csproj 文件

    如何添加新文件到 csproj从命令提示符 我认为没有任何工具可以响应命令行上的 add project 命令来执行此操作 但我认为您可以幸运地创建一个程序 脚本来直接操作 csproj 文件的 XML 内容 csproj 文件的结构如下所
  • C# amo 获取角色完整

    我正在开发一个 SSAS 项目 其中除其他事项外 我需要获取 C 中表格多维数据集的完整用户列表 目前我让它以这样的方式工作 我可以获得角色 但数据不完整 当我调用 Server Database Roles 为了便于阅读而简化 属性并枚举

随机推荐

  • 如何从 XSLT 中的 JSON 中提取数据?

    我正在 XSLT 中调用休息服务 并获得 JSON 响应作为回报 如何使用 XSLT 从 JSON 响应中提取数据 下面是用于调用其余服务的 XSLT 代码 并给出了 JSON 响应 我需要从 JSON 响应中提取以下值Cookie1 Co
  • 通过 mod_fcgid 加载 PHP 时 PHP $_SERVER['SCRIPT_NAME'] 错误

    我正在使用 Apache 2 4 7 和 PHP 5 5 7 我有一个test php文件输入C web vhosts Symfony web 的价值 SERVER SCRIPT FILENAME 是正确的 C web vhosts Sym
  • Docker 公开所有端口或从 7000 到 8000 的端口范围

    我可以在 Dockerfile 中指定端口范围吗 EXPOSE 7000 8000 当运行容器时 将所有这些暴露的端口绑定到主机上的相同端口 docker run p 7000 8000 7000 8000 从 Docker 1 5 开始
  • 从多个设备同时在多个轨道上录制音频

    我目前正在使用 JavaScript 中的 Web Audio API 开发音频 Web 应用程序 但我发现了一个问题 我需要从不同的设备同时录制到不同的轨道 想象一下 例如 一个具有 8 个输入的声卡独立地录制在 8 个缓冲区中 以便录制
  • 如何通过宁静向druid插入数据

    通过以下教程http druid io docs latest tutorials tutorial loading streaming data html http druid io docs latest tutorials tutor
  • matlab从数组中随机选择数字及其索引

    我有一个数组 c 1 2 3 4 5 可能有多个重复数字 我想从数组中随机选择一个元素及其索引 有谁能够帮助我 你可以find http in mathworks com help matlab ref find html refresh
  • Common Lisp 的 Man 或 javadoc 风格的文档

    是否有任何类型的常见 lisp 文档 例如 javadoc man 甚至类似智能感知的弹出窗口 我刚刚开始学习common lisp 手上记忆力不够 我正在使用 emacs 和 slime 它有制表符补全功能 但看起来信息量不大 Thank
  • 如果我在代码中犯了一个错误并导致JavaScript中出现无限循环并且它不断调用alert(),有没有办法停止循环?

    有时我使用调试代码来警告 javascript 中的某些内容 例如 匹配正则表达式中的某些内容 但忘记了修饰符 并且警报处于无限循环中 或者如果循环与模式匹配 300 次 如果使用 Firefox 警报会不断出现 甚至无法关闭选项卡 窗口或
  • 将 PDF 转换为图像,无需非 python 依赖项

    我想创建一个可以部署到其他计算机上的exe 该程序需要能够读取 pdf 并将其转换为图像 但我不希望其他用户必须下载依赖项 我的理解是 py2image 和 wand 都需要外部依赖项 如果您转换为 exe 其他用户也需要自己下载依赖项 还
  • Spring Remoting 序列化和反序列化

    我们在项目中使用 Spring Remoting 一段时间了 它与其他一些系统一起使用来访问我们的网络服务 我们目前正在研究网络服务采用的参数 但与此同时 我们正在努力独立于消费者 所以 目前我的问题是关于序列化和反序列化在 Spring
  • 将 Objective-C (#define) 宏转换为 Swift

    简而言之 我正在尝试转换 define宏转换为某种原生 Swift 数据结构 只是不确定如何或何种类型 Details 我想尝试并复制以下内容 define从 Objective C 到 Swift 资料来源 JoeKun FileMD5H
  • As3 复制对象

    有时我们需要克隆一个对象 但是如果一个显示对象有一些子对象并使用如下函数 function clone source var b ByteArray new ByteArray b writeObject source b position
  • Socket.io 1.0.5:如何保存会话变量?

    不幸的是 socket io 开发团队决定弃用函数 set 和 get 问题是这两个函数允许我们将变量保存到会话中 所以我的问题是 socket io 1 0 5 上的以下代码等效于什么 socket set mySessionVar my
  • 为什么 R 计算在我的虚拟机中不一致?

    我正在尝试构建一个新的虚拟机R以及下面的软件包作为R server根据我的计算 this is how I install my R packages function install packages folder dir create
  • 删除带有条件的
    标记的多个实例

    正如我在帖子中所说 我只是一个正则表达式学徒 一切都从这个线程开始 Stackoverflow 从预标记内部删除 br https stackoverflow com questions 30577912 remove br from in
  • 列表框多值选择

    我已经根据查询输出创建了表单 我使用了三个组合框和一个列表框 第一个组合框为我提供了部门列表 选择第二个组合框为我提供了该部门的位置 不同 第三个组合框为我提供了该位置的 不同 项目 然后下一个是显示该项目的一些代码的列表框 问题是我只能从
  • QCoreApplication 带有 WMI 的 QApplication

    我在MSDN网站上找到了一些WMI C 应用示例 我已经尝试过以下链接中的代码 http msdn microsoft com en us library aa390423 28v VS 85 29 aspx http msdn micro
  • R - 将 R 模型序列化为 JSON [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有一些好的 R 包可以将预测模型和其他复杂对象与 JSON 相互转换 我从这个例子中得到了线性回归模
  • 如果下一个元素为空则隐藏该元素

    我有以下代码 h3 class hideIfDivEmpty title h3 div div 我想当 div 为空时隐藏 h3 元素 我愿意更改 html 结构 但 h3 必须位于 div 之外 因为它的内容是动态更改的 有没有办法在 C
  • 您可以从另一个线程访问 UI 元素吗? (未设置)

    我在 google here 上看到很多关于从另一个线程更新 UI 元素的线程 如果我只想获取复选框的值怎么办 我可以做到这一点而不需要做任何特别的事情吗 Edit 看来我得收回之前写的东西了 尝试了以下方法 添加了一个名为的文本框myTe