我不是在询问使用后台工作者或线程池或 TPL 的最惯用的方式。
我试图找出使用 .NET 将数据从一个线程传递到另一个线程时最快的方法
我目前正在玩一个带有写索引和读索引的环形缓冲区。这样,除了更新读/写索引的原子操作外,我根本没有任何线程同步。(我不是 100% 确定,但是整数的读取和 ++ 在 .NET 中是原子的,对吗?或者当一个线程读取整数时,整数是否可以在中途被覆盖?)
Write Index
V
index 0 [_][_][_][_][_][_][_][_][_][_][_] --> higher index
^
Read Index
当涉及到线程间通信时,这是一种合理的方法吗?
我没有将它用于任何真正的项目,我只是想更好地掌握什么有效,什么无效。
[编辑] 好的,我准备公开羞辱:
https://gist.github.com/rogeralsing/8121376
该代码中有多少个漏洞?