第一; 您是否考虑过TryParse?
in li;if(int.TryParse(LclClass.SomeString, out li)) { // li is now assigned} else { // input string is dodgy}
锁定将被释放的原因有两个:首先,
lock本质上是:
Monitor.Enter(lockObj);try { // ...} finally { Monitor.Exit(lockObj);}
第二; 您会捕获并且不会重新抛出内部异常,因此
lock从不实际看到异常。当然,您在整个MessageBox期间都持有该锁,这可能是一个问题。
因此,它将在除了最致命的灾难性不可恢复的异常之外的所有异常中释放。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)