async Task <bool> asyncSendCommandToDB(string dianYuanID, PowerDataPack_Send_CommandEnum command) { return(await Task.Run(() => { PowerSendCMDEFModel vSendCMDEFModel = new PowerSendCMDEFModel() { State = false, IsSend = false, IsReply = false, CMD = (byte)command, DianYuanID = dianYuanID, SendTime = DateTime.Now, SN = NetHelper.MarkSN_Byte() }; int vID = m_BasicDBClassInsert.InsertRecord(vSendCMDEFModel); DateTime vStartTime = DateTime.Now; bool vResult = false; do { PowerSendCMDEFModel vSelectResult = m_BasicDBClassSelect.SelectRecordByPrimaryKeyEx <PowerSendCMDEFModel>(vID); vResult = vSelectResult.State ?? false; if (!vResult && (DateTime.Now - vStartTime).TotalMilliseconds >= 2000) { break; } Thread.Sleep(200); } while (!vResult); return vResult; })); }
async Task <bool> asyncSendCommandToDB <T>(string dianYuanID, PowerDataPack_Send_CommandEnum command, T SendData) { return(await Task.Run(() => { // string vDataStr = System.Text.Encoding.Default.GetString(NetHelper.StructureToByte(SendData)); PowerSendCMDEFModel vSendCMDEFModel = new PowerSendCMDEFModel() { State = false, IsSend = false, IsReply = false, CMD = (byte)command, DianYuanID = dianYuanID, SendTime = DateTime.Now, SN = NetHelper.MarkSN_Byte(), Data = NetHelper.StructureToByte(SendData) }; int vID = m_BasicDBClass_Send.InsertRecord(vSendCMDEFModel); DateTime vStartTime = DateTime.Now; bool vResult = false; do { PowerSendCMDEFModel vSelectResult = m_BasicDBClass_Send.SelectRecordByPrimaryKeyEx <PowerSendCMDEFModel>(vID); vResult = vSelectResult.State ?? false; if (!vResult && (DateTime.Now - vStartTime).TotalMilliseconds >= 2000) { break; } Thread.Sleep(200); } while (!vResult); //m_BasicDBClass.DeleteRecordByPrimaryKey<PowerSendCMDEFModel>(vID); return vResult; })); }