【发布时间】:2012-09-14 03:18:50
【问题描述】:
我在多线程应用程序中有一个方法,我希望在调用此方法时出现以下行为:
- 如果当前没有其他线程正在执行该方法,则执行它。
- 如果另一个线程当前正在执行该方法,则退出该方法而不执行它。
C# 中的lock 语句对于等待线程完成执行很有用,但我不想序列化对该方法的访问,而是在另一个线程执行时绕过执行所述方法。
【问题讨论】:
-
收藏了这个。之前,我试图通过创建一个循环该方法的线程并使用
volatile bool、lock和AutoResetEvent的“hail mary”组合来解决这个问题。 (吐在嘴里……)
标签: c# thread-safety