|
|
1
73
极有可能
我
一定地
不会依赖它-如果你需要事情按顺序发生,建立一个
编辑:我刚在乔·达菲家找到这个 Concurrent Programming on Windows 基本同意:
“粗略的FIFO”位是我之前所想的,而“偷偷摸摸的线索”位则进一步证明了你不应该对FIFO排序做出假设。 |
|
|
2
11
正常的CLR锁不能保证是FIFO。 但是,有一个 QueuedLock class in this answer 它将提供有保证的FIFO锁定行为 . |
|
|
3
10
这个
事实上,杰弗里里克特的一篇文章表明
当然-这是一篇老文章,所以事情可能已经改变了,但鉴于合同中没有对
|
|
|
4
2
与问题稍微有点相悖,但线程池甚至不能保证它将按添加的顺序执行排队的工作项。如果您需要异步任务的顺序执行,一个选项是使用TPL任务(也可以通过 Reactive Extensions ). 它看起来像这样:
这有几个优点:
|
|
|
5
0
我用这个方法来做FIFO锁定
当线程在锁中等待时,ConcurrentQueue将命令执行操作。 |