我正在开发一个 C#/ASP.NET Web 应用程序,并且在许多情况下我需要进行锁定。理想情况下,我希望锁独立运行,因为它们彼此无关。我一直在考虑[MethodImpl(MethodImplOptions.Synchronized)]
和一些使用方法lock()
,但我有一些问题/疑虑。
看起来像 MethodImplOptions.Synchronized will essentially do
lock(this)`。如果是这种情况,似乎一个线程进入任何同步方法都会阻止所有其他线程进入任何同步方法。那正确吗?如果是这样,这还不够细化。在这一点上,我似乎还不如使用 Application.Lock。(但如果我错了,请纠正我。)
关于lock()
,我试图弄清楚我应该传入什么。我是否应该专门为此目的创建一组对象,并将每个对象用于不同的锁?有没有更好的办法?
提前致谢!