【问题标题】:Why .NET does not allow cross-thread operations? [duplicate]为什么.NET 不允许跨线程操作? [复制]
【发布时间】:2010-05-24 11:13:32
【问题描述】:

可能重复:
.NET Controls: Why aren’t all calls thread-safe?

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

我不明白为什么 SerialPort DataReceived 事件无法更新表单上的简单文本框以及为什么可以使用委托?

【问题讨论】:

  • @ChrisF:没有什么“可能”。
  • @Richard - 当第一个人将问题标记为重复时,会自动添加评论。一旦问题实际关闭,它就会被问题正文的编辑所取代。
  • @ChrisF:之前没有注意到...(但仍然适用:-))

标签: .net winforms multithreading


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-07
    • 2019-03-02
    • 1970-01-01
    • 2019-01-21
    相关资源
    最近更新 更多