接着上一节:https://blog.csdn.net/wodownload2/article/details/119143150
我们来看下,c#中lock方式生成的中间代码:
打开unity中的Assembly-CSharp.dll文件:
https://www.cnblogs.com/caokai520/p/4921706.html
IL-DASM工具的使用
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\ildasm.exe
可以看到,lock最终生成的是:Monitor.Enter和Monitor.Exit方法,并且包裹了try和catch。保证在崩溃的时候执行到finally中的Monitor:Exit方法,进行锁的释放。
所以lock的方式,要比Monitor.Enter和Monitor.Exit安全一些。
本文参考:https://www.cnblogs.com/manlin/articles/2305917.html