c# - 如何在 TPL 中检查变量是否已在其他线程中更改

标签 c# task-parallel-library

我需要检查 TPL 程序中的变量是否已更改。例如,如果一个线程更改了一个 volatile 字符串变量,则其他线程不需要更改它。由于变量的类型是可变的,其他线程可以使用它。我该怎么做?

最佳答案

  1. volatile 可能并不像您认为的那样。不要使用它,因为它不能满足您的需求。
  2. 您不能像那样查明变量是否已更改。也许您可以添加一个 bool wasChanged = false 并在写入变量时将其设置为 true。请记住为此使用适当的同步(可能是 lock)。

关于c# - 如何在 TPL 中检查变量是否已在其他线程中更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15485930/

相关文章:

c# - MathNet.Filter 不过滤数据

c# - 我应该在 LINQ 中使用两次 OrderByDescending 吗?

c# - 用于在两个进程之间进行通信的.net框架

c# - 防止任务在特定线程上运行

c# - CancellationTokens 可以跨 AppDomains 使用吗

c# - 从死锁更新

java - C#按位异或(^)与Java按位异或(^)对比

c# - 是否可以在核心之间划分工作?

c# - 在 C# 中同时运行同一方法的多个实例而不会丢失数据?

f# - 任务并行库与异步工作流