为什么.NET不允许跨线程操作? [复制]

2023-12-08

可能的重复:
.NET 控件:为什么并非所有调用都是线程安全的?

这个问题不是关于什么是跨线程操作以及如何避免跨线程操作,而是为什么.NET框架的内部机制不允许跨线程操作。

我无法理解为什么 SerialPort DataReceived 事件无法更新表单上的简单文本框,以及为什么使用委托可以做到这一点?


.NET 允许跨线程操作。但你应该安全地处理它。使用Invoke / BeginInvoke跨线程操作的方法。 Invoke 的意思是“嘿,文本框!请在有时间时自行更新。”这是一个用法示例on MSDN

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

为什么.NET不允许跨线程操作? [复制] 的相关文章

随机推荐

  • 转换列并更新 DataFrame

    所以 我下面要做的是删除一列A from a DataFrame因为我想应用一个转换 这里我只是json loadsJSON 字符串 并将旧列替换为转换后的列 转换后 我只需连接两个结果数据框 df df data drop A join
  • 如何比较“看起来相似”的 Unicode 字符?

    我陷入了一个令人惊讶的问题 我在应用程序中加载了一个文本文件 并且有一些逻辑来比较 的值 我意识到即使文本相同 比较值也是错误的 Console WriteLine Equals returns false Console WriteLin
  • OpenCV StereoRectify 扭曲图像

    我们有一个 ELP 1 0 百万像素双镜头 USB 立体相机 我们正在尝试使用 C 中的 OpenCV 3 1 来校准它 然而 校准的结果完全无法使用 因为调用stereoRectify完全扭曲了图像 这就是我们所做的 在两个相机中找到校准
  • 使用 Java/Socket 的简单 Http 服务器?

    我目前正在创建一个返回静态页面的小型 HTTP 服务器 p Hello p 我尝试使用 Java 的套接字 public static void main String args throws Exception cr ation de l
  • 使用 SuiteTalk 获取采购订单中的项目

    我正在尝试使用 SuiteTalk 从采购订单中获取商品和一些相关信息 我能够获得所需的采购订单TransactionSearch在 Scala 中使用以下内容 val transactionSearch new TransactionSe
  • python 字符串模块与 str 方法

    gt gt gt import string gt gt gt s happy cat gt gt gt string find s cat 6 and gt gt gt s happy cat gt gt gt s find cat 6
  • Netbeans 11.2:没有为项目或全局定义合适的部署服务器

    我在 Mac 上安装了 Netbeans 11 2 IDE 在 服务 gt 服务器 下 我添加了 GlassFish Server 作为服务器 然后我打开了一个maven项目 我可以 清理和建造 它 然后我想运行它 但这导致了以下错误消息
  • 如何将图像插入到闪亮的 navbarPage() 上的导航栏中

    我正在使用一个闪亮的应用程序navbarPage 布局 我想在屏幕右侧的导航栏中插入图像 例如 它看起来像 stackoverflow 网站顶部的导航栏 但在最右侧有一个徽标 我努力了 shinyUI navbarPage title te
  • 传递多个模型查看

    public ActionResult Index var pr db products return View pr 首先 我想传递给视图更多数据 例如 public ActionResult Index var pr db produc
  • 今天是一年中的第 n 天 [重复]

    这个问题在这里已经有答案了 我想获得天数 即 1 月 1 日是第 1 天 1 月 2 日是第 2 天 2 月 1 日是第 32 天 12 月 31 日是第 365 或 366 天 具体取决于是否闰年 我使用了各种技术 例如 date1 da
  • 如何取消设置和最右边的设置位

    有一个相对知名的技巧可以取消设置最右边的一个位 y x x 1 0b001011100 0b001011011 0b001011000 我发现自己有一个紧密的循环来清除最右边的 n 位 但是有更简单的代数技巧吗 假设 n 相对较大 对于 6
  • control.BeginInvoke() 无法调用委托

    我注意到 control BeginInvoke delegate 有时无法调用委托 据我了解 BeginInvoke 只是创建一条 PostMessage 该消息稍后由应用程序处理 默认情况下发布消息限制为 10 000 鉴于我们的应用程
  • 国际奥委会容器。注入容器

    我想要的 解析对象 A 在对象 A 内部 我想使用相同的容器来解析对象 C public static void Work IUnityContainer con new UnityContainer con RegisterType
  • 如何运行 Google 新的“places_compat_compatify.sh”兼容性脚本?

    我正在尝试迁移到谷歌提供的 SDK 的新位置 他们提供了一个兼容性脚本绞车自动执行该过程 https developers google com places android sdk client migration compat scri
  • 为什么 CUDA Profiler 指示重放指令:82% != 全局重放 + 本地重放 + 共享重放?

    我从 CUDA Profiler 获取信息 我很困惑为什么 重播指令 全局内存重播 本地内存重播 共享存储体冲突重播 请参阅我从探查器获得的以下信息 Replayed Instructions 81 60 Global memory rep
  • 如何在 ImageView 中缩放图像以保持宽高比

    在Android中 我定义了一个ImageView s layout width to be fill parent 占据手机的整个宽度 如果我把图像放到ImageView大于layout width Android 会缩放它 对吧 但是身
  • 在php中获取bootstrap下拉列表的值

    我创建了一个包含多个字段的表单 例如输入类型名称 复选框和下拉列表 我的下拉代码 div class container div
  • Ansible 未检测到其处理程序中的角色默认变量

    ansible 是否将角色默认变量传递给同一角色中的处理程序 以下是存在问题的剧本的最小摘录 角色层次结构 playbook yml roles gunicorn defaults main yml handlers main yml co
  • 使用“in”运算符检查多个值 (Python)

    if string1 in line 按预期工作 但是如果我需要像这样检查多个字符串怎么办 if string1 or string2 or string3 in line 似乎不起作用 if any s in line for s in
  • 为什么.NET不允许跨线程操作? [复制]

    这个问题在这里已经有答案了 可能的重复 NET 控件 为什么并非所有调用都是线程安全的 这个问题不是关于什么是跨线程操作以及如何避免跨线程操作 而是为什么 NET框架的内部机制不允许跨线程操作 我无法理解为什么 SerialPort Dat