这么巧,我也在做这个。你需要的话,可以讨论。不过你说的,可以参考如下的方法:
class yourclass
{
  private byte[] buffer = new byte[4096];
  private object SyncRoot = new object();
  private void read();
  {
    Monitor.Enter(SyncRoot);
    try
    {
       //你的buffer操作
     }
    finally
    {
      Monitor.Exit(SyncRoot);
    }
    return;  }
}类似的操作buffer的地方都用Monitor来锁住临界区资源。(我也了解不多。说错了各位高手指正)