【发布时间】:2011-01-07 19:31:37
【问题描述】:
我有一个当前不需要线程安全的类,但将来我们可能想要制作一个线程安全的版本。在我看来,我现在可以通过在相关函数周围加锁来使其成为线程安全的,或者我现在可以使它们成为虚拟的,然后在后代类的覆盖中加锁。也就是说,今天我可以这样做:
public void DoStuff()
{
lock (this.SyncRoot)
{
// Do stuff...
}
}
或者我可以这样做:
public virtual void DoStuff()
{
// Do stuff...
}
今天哪个选项可以更快地完成工作?
【问题讨论】:
-
这里的两个例子都是虚拟的。这是故意的吗?
标签: c# .net performance locking virtual-functions