代码之家  ›  专栏  ›  技术社区  ›  fluter

如何在任务之间同步访问共享数据?

  •  0
  • fluter  · 技术社区  · 9 年前

    Semaphore Mutex EventHandle 对于线程之间的同步,但对于新的基于任务的代码,我了解到我不能再使用它们,因为不能保证异步函数在等待后会在同一个线程上恢复,所以我应该如何在不同的任务之间进行同步?

    1 回复  |  直到 9 年前
        1
  •  3
  •   Stephen Cleary    9 年前

    我应该如何在不同的任务之间同步?

    由于您有一个生产者/消费者系统,您可以使用 BufferBlock<T> ,它充当异步兼容的生产者/消费者队列。

    在更一般意义上的协调原语替换中,请参见 my AsyncEx.Coordination library build your own .NET中唯一内置的是 SemaphoreSlim