在ConcurrentQeueue<>
类中,定义了额外的方法TryDequeue()
。但是,由于它实现了IProducerConsumerCollection<>
,因此它也有一个TryTake()
方法。根据文档,它们都做同样的事情:
TryDequeue:
尝试移除并返回并发队列开头的对象。
TryTake:
对于ConcurrentQueue,此操作将尝试从ConcurrentQueue的开头删除对象。
为什么要实现TryDequeue
方法呢?
在ConcurrentQeueue<>
类中,定义了额外的方法TryDequeue()
。但是,由于它实现了IProducerConsumerCollection<>
,因此它也有一个TryTake()
方法。根据文档,它们都做同样的事情:
TryDequeue:
尝试移除并返回并发队列开头的对象。
TryTake:
对于ConcurrentQueue,此操作将尝试从ConcurrentQueue的开头删除对象。
为什么要实现TryDequeue
方法呢?
1条答案
按热度按时间juud5qan1#
ConcurrentQueue中的TryDequeue和TryTake有什么区别<>
根据可用的源代码,在
TryTake
调用TryDequeue
时没有区别字符串
来源:https://source.dot.net/#System.Private. CoreLib/ConcurrentQueue.cs,201
为什么要费心实现TryDequeue方法呢?
TryDequeue
遵循与队列相关联的预期名称约定,并且是ConcurrentQueue<>
本地的。同样,TryTake
遵循通常与生产者/消费者模式相关联的命名约定。