public static JsonOperation GetInstance() { if (_JsonOperation == null) { _JsonOperation = new JsonOperation(); } return(_JsonOperation); }
public static void CreatePeriodicRequest(int d) { //workItem.Status == AsyncStatus.Canceled asyncRequest = ThreadPool.RunAsync( async(workItem) => { while (true) { //延迟时间 await Task.Delay(d); Debug.WriteLine("进入正常工作线程"); double ctemp = SlaveModel.GetInstance().CTemp; double dtemp = SlaveModel.GetInstance().DTemp; string workMode = SlaveModel.GetInstance().WorkMode; string speed = SlaveModel.GetInstance().Speed; if (workMode == "Cooling") { ctemp -= 1.0; if (ctemp < dtemp) { ctemp = dtemp; } } else { ctemp += 1.0; if (ctemp > dtemp) { ctemp = dtemp; } } string message = JsonOperation.GetInstance().PraseJson(2, "req", dtemp, ctemp, speed, workMode); await TcpClient.GetInstance().SendToTcpServer(message); //启动5秒定时器 CreateTimer(5000); //等待Ack string JsonString = await TcpClient.GetInstance().WaitTcpServer(); Debug.WriteLine(JsonOperation.GetInstance().DeserializeJson("ack", JsonString)); //如果收到的消息是ack if (JsonOperation.GetInstance().DeserializeJson("ack", JsonString)) { //取消定时器 DelayTimer.Cancel(); //停止自己变化线程 if (asyncSelfChange != null) { asyncSelfChange.Cancel(); Debug.WriteLine("停止自己变化"); } //累加消费金额 SlaveModel.GetInstance().Cost += double.Parse(JsonOperation.GetInstance().DeserializeJson(JsonString)); //如果当前正在工作,就更新温度,否则就设置为开始工作 if (SlaveModel.GetInstance().IsWorking == true) { SlaveModel.GetInstance().CTemp = ctemp; SlaveModel.GetInstance().DTemp = dtemp; } else { SlaveModel.GetInstance().IsWorking = true; } } } }); }