【发布时间】:2015-04-15 18:43:07
【问题描述】:
我有一个Variable 类型的类,它包含一个Value 类型的字段,该字段最初是未设置的(null),但将来会设置。多个线程可以访问一个Variable-object。带有签名Variable.Set(Value v) 的方法只被调用一次并设置变量。许多其他线程应该能够调用Variable.Wait() (在设置Variable 之前和之后) 其中:
- 如果
Variable已设置,应立即返回。 - 如果未设置
Variable,则应(有效地)等待其设置,然后返回。
当我查看 API 时,我确信周围有一些明显的同步原语 - 监视器、事件、等待句柄或类似的 - 但我需要帮助找出最简单、最有效的解决方案,因为我正在学习并行性在 .NET 中。
【问题讨论】:
标签: c# .net multithreading synchronization