我有一个当前不需要线程安全的类,但将来我们可能想要制作一个线程安全的版本。在我看来,我现在可以通过在相关函数周围加锁来使其成为线程安全的,或者我现在可以使它们成为虚拟的,然后在后代类的覆盖中加锁。也就是说,今天我可以这样做:
public void DoStuff()
{
lock (this.SyncRoot)
{
// Do stuff...
}
}
或者我可以这样做:
public virtual void DoStuff()
{
// Do stuff...
}
今天,哪个选项可以更快地完成工作?