0039デフォルトの名無しさん (ワッチョイ fbf7-Ksx5)
2017/05/25(木) 06:03:54.24ID:OZ9w4Yf70DateTime begin = DateTime.Now;
再試行:
bool l1 = Monitor.TryEnter(obj1, 0);
bool l2 = Monitor.TryEnter(obj2, 0);
if (l1 && l2) {
goto ロック成功;
} else {
if(l1) Monitor.Exit(obj1); // チェックと共にロックしてしまうので、このコードも残念賞
if(l2) Monitor.Exit(obj2); // 同上
if ((DateTime.Now - begin).TotalMilliseconds > 1000) {
goto タイムアウト;
} else {
System.Threading.Thread.Sleep(10); // この待ち方も酷い
goto 再試行;
}
}
タイムアウト:
{
タイムアウト処理
}
ロック成功: