In C# would it be better to use Queue.Synchronized or lock() for thread safety?

前端 未结 5 2002
南旧
南旧 2020-12-08 09:33

I have a Queue object that I need to ensure is thread-safe. Would it be better to use a lock object like this:

lock(myLockObject)
{
//do stuff with the queue         


        
5条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-08 10:08

    This way we don't need to lock the queue just to find out it was empty.

    object item;
    if (queue.Count > 0)
    {
      lock (queue)
      {
        if (queue.Count > 0)
        {
           item = queue.Dequeue();
        }
      }
    }
    

提交回复
热议问题