我有两个帖子和一个Queue<string>
。第一个线程在循环中执行一些性能关键工作,它检查Queue<string>
每次迭代,如果Queue
不为空,则抓取字符串。
现在我需要第二个线程安全地将字符串放在Queue
中。当第一个帖子没有对Queue
做任何事情时,只有第二个帖子等待。我不想使用lock
,因为它会阻止第一个帖子最终放慢速度。
我该怎么做?我试图用锁定语句在我的第二个线程中仅包围Enqueue()
,但ReSharper警告我:
该字段有时在同步块内使用,有时在没有同步的情况下使用。
所以我想我做得不对。