确定阻止策略

时间:2016-01-27 02:01:37

标签: c# multithreading blocking

我有一个Refresh()方法,可以在类的单个实例中刷新一组名称/值对(它是一个应用程序范围的属性包,通过UnityContainer解析)。

可以同时从多个线程调用此Refresh()方法。我需要实现一个阻塞策略,以便对同一个方法的任何并发调用都被阻塞,然后同时释放。

所以流程将是:

  • 第一个调用者执行Refresh()方法
  • 任何并发调用者都将阻止
  • 第一个调用者完成后,并且所有被阻止的并发调用者将返回
  • 发布的并发调用者不会重新执行该方法的内容,因为不需要
  • 并发调用者无法提前释放(即他们无法立即返回),因为Refresh()方法仍由第一个调用者执行(因此名称/值集合仍在更改)

此锁定/阻止策略是否已建立名称?我知道如何实现这一点,但我需要确保我不会重新发明轮子。

0 个答案:

没有答案