在代码审查期间我被建议做
bool acquiredLock = false;
try {
Monitor.TryEnter(lockObject, 500, ref acquiredLock);
if (acquiredLock) {
// do something
}
else {
// fallback strategy
}
}
finally
{
if (acquiredLock)
{
Monitor.Exit(lockObject);
}
}
Run Code Online (Sandbox Code Playgroud)
而不是更简单
if (Monitor.TryEnter(lockObject, 500)) {
try {
// do something...
}
finally {
Monitor.Exit(lockObject);
}
} else {
// fallback strategy
}
Run Code Online (Sandbox Code Playgroud)
它有什么不同?第一个代码怎么能没有出现第二个代码会出现错误的错误?
| 归档时间: |
|
| 查看次数: |
424 次 |
| 最近记录: |