public void AddReq(BasicRequire req, ReqType type) { _reqListArr[(int)type].Add(req); try { _workSem.Release(); }catch (Exception e) { } }
private void work() { BasicRequire currReq = null; while (true) { _workSem.WaitOne(); currReq = null; if (_workFinish == true) { break; } while (true) { foreach (List <BasicRequire> reqList in _reqListArr) { foreach (BasicRequire req in reqList) { currReq = req; reqList.Remove(req); break; } if (currReq != null) { break; } } if (currReq == null) { break; } // Send Req DataFrame sendFrame = new DataFrame(); sendFrame.Data = currReq.GetData(); sendFrame.Length = (byte)sendFrame.Data.Length; sendFrame.SalveAddress = _deviceAddress; DataFrame rcvFrame = _rs485Master.Send(sendFrame); currReq.SetResult(rcvFrame.Data); currReq = null; } } }
public void AddReq(BasicRequire req, ReqType type) { _reqListArr[(int)type].Add(req); _workSem.Release(); }