c# - 在后台工作线程中使用 C# 全局变量是否安全

标签 c# multithreading thread-safety backgroundworker

嗨 我正在开发一个简单的桌面应用程序,它需要处理一些操作,例如加载可能会阻塞主线程的网页,因此我将代码移到了后台工作程序。

我的问题是有一个名为 UCSProject 的繁重类,其中包含许多字符串和列表字段,我需要将此类的实例传递给后台工作程序,因为该类有点重,我想减少通过直接使用全局变量而不是将其作为参数传递给后台工作程序来减少重复实例的数量。

简而言之,我只想知道在 C# 中从后台工作线程访问全局变量是否安全

最佳答案

这是安全的,除非你的线程(背景和正常)都没有修改对象。

如果你想让你的对象被对方修改,使用Lock

关于c# - 在后台工作线程中使用 C# 全局变量是否安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4517038/

相关文章:

c# - C# 中的新运算符不会覆盖基类成员

java - 如果事件调度线程没有暂停,模式对话框如何等待?

java - Android-当我尝试在文本框中显示某些内容时崩溃

java - Nashorn 以线程安全的方式

c# - 在 yield return 函数中是否可以确保在同一个线程上调用终结器?

java - 在此类的对象上调用 start() 安全吗? Java 并发实践中的一个例子

c# - Linq Find 方法作为 IQueryable

c# - WNetAddConnection2 返回错误 1200 - 本地名称有效

c# - 子类中的构造函数顺序

multithreading - 操作系统中的轻量级线程