草庐IT

c# - 如何在 .NET 中卡住冰棒(使类不可变)

我正在设计一个我希望在主线程完成配置后只读的类,即“卡住”它。埃里克·利珀特(EricLippert)称此popsicle不变性。卡住后,可以被多个线程并发访问读取。我的问题是如何以实际高效的线程安全方式编写此代码,即不尝试变得不必要的聪明。尝试1:publicclassFoobar{privateBoolean_isFrozen;publicvoidFreeze(){_isFrozen=true;}//Onlyintendedtobecalledbymainthread,sochecksifclassisfrozen.Ifitistheoperationisinvalid.publi