private void RecvBlackListThread() { while (true) { string blackNo; bool suspend; Net netUtil = new Net(); RestaurantLog.Items.Add(System.DateTime.Now + "接收挂失信息……"); if (netUtil.RecvBlackList(out blackNo, out suspend)) { RestaurantLog.Items.Add(System.DateTime.Now+"收到" + (suspend ? "挂失" : "解挂") + "卡号:" + blackNo); RestaurantLog.Items.Add(System.DateTime.Now + "通知消费机……"); foreach (Pos p in Poses) { p.mutex.WaitOne(); bool result = p.SuspendCard(blackNo, suspend); RestaurantLog.Items.Add(System.DateTime.Now + "通知" + p.POS_id + "号机" + (result ? "成功" : "失败")); p.mutex.ReleaseMutex(); } } else { RestaurantLog.Items.Add(System.DateTime.Now + "网络错误,稍后重试……"); System.Threading.Thread.Sleep(5000); } } }