/// <summary> /// 功能描述:定时请求 /// 创建 人:周文卿 /// 创建时间:2019-02-20 /// </summary> /// <param name="state"></param> static void Request(Object state) { TimerExampleState s = (TimerExampleState)state; try { s.counter++; //拼接参数 RulePayRequest rulePayRequest = new RulePayRequest(); string rest = rulePayRequest.PostUrl(s.fldNotice, s.pram); if (rest == "ok") { Console.WriteLine("定时器的处理"); s.tmr.Dispose(); s.tmr = null; } if (s.counter == 5) { s.tmr.Dispose(); s.tmr = null; } } catch (Exception e) { s.tmr.Dispose(); s.tmr = null; throw new InsertException(e.Message, "Transaction", "Request", s.ToString()); } }
async void CheckStatus(Object state) { TimerExampleState s = (TimerExampleState)state; s.counter++; Console.WriteLine("{0} Checking Status {1}.", DateTime.Now.TimeOfDay, s.counter); var jokeid = jokeModel.Item.JokeID; var _jokeService = new JokeService(); var joke = await _jokeService.GetJoke(jokeid, true); this.jokeModel.Item.NoLikes = joke.NoLikes; this.jokeModel.Item.NoUnlikes = joke.NoUnlikes; }
public static void Main() { TimerExampleState s = new TimerExampleState(); Timer timer = new Timer( new TimerCallback(CheckStatus), s, 1000, 500); s.tmr = timer; while (s.tmr != null) { Thread.Sleep(0); } Console.WriteLine("Timer example done."); }
public void DoAgain() { TimerExampleState s = new TimerExampleState(); // Create the delegate that invokes methods for the timer. TimerCallback timerDelegate = new TimerCallback(CheckStatus); // Create a timer that waits one second, then invokes every second. Timer timer = new Timer(timerDelegate, s, 1000, 3000); // Keep a handle to the timer, so it can be disposed. s.tmr = timer; // The main thread does nothing until the timer is disposed. Console.WriteLine("Timer example done."); }
/// <summary> /// 功能描述:支付线程 /// </summary> /// <param name="MerchantId">商户ID</param> /// <param name="order_no">订单号</param> /// <param name="order_amount">金额</param> /// <param name="order_time">订单创建时间</param> /// <param name="pay_type">支付方式</param> /// <param name="product_name">商品描述</param> /// <param name="fldNotice">异步通知地址</param> /// <param name="key">商户key值</param> public static void myThread(string MerchantId, string order_no, string order_amount, string order_time, string pay_type, string product_name, string fldNotice, string key) { TimerExampleState s = new TimerExampleState(); s.fldNotice = fldNotice; AsynParameterPay asyn = new AsynParameterPay(); asyn.MerchantId = MerchantId; asyn.OrderID = order_no; asyn.Amount = order_amount; asyn.OrderTime = order_time; asyn.Paytype = pay_type; asyn.ProductName = product_name; asyn.Paystate = "支付成功"; string getpram = JsonHelper.SerializeObject(asyn); //json 转换成Dictionary Dictionary <string, string> valuePairs = JsonHelper.DeserializeStringToDictionary <string, string>(getpram); //排序 RulePayBehavior behavior = new RulePayBehavior(); string sign = behavior.AsciiDesc(valuePairs); //添加key值 sign += "key=" + key; //md5加密 string signkey = behavior.EncryptionMd5(sign); asyn.Sign = signkey; //装换成json s.pram = JsonHelper.SerializeObject(asyn); //创建代理对象TimerCallback,该代理将被定时调用 TimerCallback timerDelegate = new TimerCallback(Request); //创建一个时间间隔为5m的定时器 Timer timer = new Timer(timerDelegate, s, 5 * 60 * 1000, 5 * 60 * 1000); s.tmr = timer; //主线程停下来等待Timer对象的终止 while (s.tmr != null) { Thread.Sleep(1000); } }
// The following method is called by the timer's delegate. static void CheckStatus(Object state) { TimerExampleState s = (TimerExampleState)state; s.counter++; Console.WriteLine("{0} Checking Status {1}.", DateTime.Now.TimeOfDay, s.counter); if (s.counter == 5) { // Shorten the period. Wait 10 seconds to restart the timer. (s.tmr).Change(10000, 100); Console.WriteLine("changed..."); } if (s.counter == 10) { Console.WriteLine("disposing of timer..."); s.tmr.Dispose(); s.tmr = null; } }
static void CheckStatus(object state) { TimerExampleState s = (TimerExampleState)state; s.counter++; Console.WriteLine("{0} Checking Status {1}.", DateTime.Now.TimeOfDay, s.counter); if (s.counter == 5) { (s.tmr).Change(3000, 100); //更改时间间隔 Console.WriteLine("changed..."); } if (s.counter == 10) { Console.WriteLine("disposing of timer..."); s.tmr.Dispose(); s.tmr = null; } }
/// <summary> /// 功能描述:定时请求 /// 创建 人:周文卿 /// 创建时间:2019-02-20 /// </summary> /// <param name="state"></param> static void Request(Object state) { TimerExampleState s = (TimerExampleState)state; try { s.counter++; //拼接参数 QueryRequest rulePayRequest = new QueryRequest(); string rest = "err"; switch (s.type) { case "1": rest = rulePayRequest.HttpPostZF(s.fldNotice, s.pram, s.cheanlname, s.orid); break; case "0": rest = rulePayRequest.HttpPostJSON(s.fldNotice, s.pram, s.cheanlname); break; } if (rest == "ok") { s.tmr.Dispose(); s.tmr = null; } if (s.counter == 6) { s.tmr.Dispose(); s.tmr = null; } } catch (Exception e) { s.tmr.Dispose(); s.tmr = null; throw new InsertException(e.Message, "Transaction", "Request", s.ToString()); } }
/// <summary> /// 功能描述:代付查询 /// </summary> /// <param name="MerchantId">商户ID</param> /// <param name="order_no">订单号</param> /// <param name="key">key值</param> /// <param name="cheanlname">渠道名称</param> public static void QueryAgentThend(string MerchantId, string order_no, string key, string cheanlname) { //读取参数配置Json 文件 RuleCommon rule = new RuleCommon(); string strLocalpath = System.Web.Hosting.HostingEnvironment.MapPath(@"~/App_Data/Config/QueryAgent.json");//配置的json文件地址; string getjson = rule.GetJson(strLocalpath); //转换成JSON对象 JArray jsonObj = JArray.Parse(getjson); JToken array = new JArray(); //循环JSON 根据渠道名称 匹配对象 for (int i = 0; i < jsonObj.Count; i++) { if (jsonObj[i]["fldGatewaynumber"].ToString() == cheanlname) { array = jsonObj[i]; } } //得到参数列表 JToken childrenarray = JArray.Parse(array["parameter"].ToString()); Dictionary <string, string> directory = new Dictionary <string, string>(); foreach (JToken item in childrenarray[0].Children()) { var JP = item as JProperty; string keyname = JP.Name; string value = JP.Value.ToString(); //如果value分别是order_no switch (value) { case "order_no": value = order_no; break; } directory.Add(keyname, value); } //根据各个渠道不同的要求 处理参数 Processingparameter processingparameter = new Processingparameter(); string por = ""; switch (cheanlname) { case "HT_006": por = processingparameter.ProcessingHT(directory, key, "1"); break; case "QJ_004": por = processingparameter.ProcessingQJ(directory, key, 0); break; case "YD_010": por = processingparameter.ProcessingYDSelect(directory, key); break; case "ZC_008": por = processingparameter.ProcessingZCselect(directory, key); break; case "HF_011": por = processingparameter.ProcessingHFselect(directory, key); break; } //根据requesttype 判断请求的方式 1是application/x-www-form-urlencoded 0是application/json TimerExampleState s = new TimerExampleState(); //QueryRequest rulePayRequest = new QueryRequest(); //string rest = "err"; //rest = rulePayRequest.HttpPostZF(array["payurl"].ToString(), por, cheanlname, order_no); s.type = array["requesttype"].ToString(); s.fldNotice = array["payurl"].ToString(); s.cheanlname = cheanlname; s.pram = por; //创建代理对象TimerCallback,该代理将被定时调用 TimerCallback timerDelegate = new TimerCallback(Request); //创建一个时间间隔为5m的定时器 Timer timer = new Timer(timerDelegate, s, 5 * 60 * 1000, 5 * 60 * 1000); s.tmr = timer; //主线程停下来等待Timer对象的终止 while (s.tmr != null) { Thread.Sleep(1000); } }
/// <summary> /// 串口接收用定时器函数 /// </summary> /// <param name="state"></param> void TimerRecive(Object state) { TimerExampleState s = (TimerExampleState)state; if (NowUartReceiveStatus == UARTReceiveStatus.DataReceiveFinish) { if (Uart1.SwtichSP(false) == true)//关闭成功 { SwitchReceiveBTN.Text = "开始接收"; NowUartReceiveStatus = UARTReceiveStatus.SerialPortClosed; NowUartSendStatus = UARTSendStatus.SerialPortClosed; } else { MessageBox.Show("关闭串口失败!"); } s.tmr.Dispose(); s.tmr = null; return; } try { if (HexCB.Checked == true) { strRecieve = ""; byte[] Receivebuff = new byte[500]; int ReceiveNum = Uart1.sp.Read(Receivebuff, 0, Uart1.sp.BytesToRead); if (ReceiveNum > 0) { for (int i = 0; i < ReceiveNum; i++) { int hexnum1 = Receivebuff[i] / 16; int hexnum2 = Receivebuff[i] % 16; strRecieve += hexnum1.ToString(); strRecieve += hexnum2.ToString(); strRecieve += " "; //strRecieve += Receivebuff[i]; } Console.WriteLine(strRecieve); ReceiveTB.AppendText(strRecieve); } //Console.WriteLine(Receivebuff.ToString()); } else { strRecieve = Uart1.sp.ReadExisting(); if (strRecieve != "") { Console.WriteLine(strRecieve); ReceiveTB.AppendText(strRecieve); if (ReceiveTB.Text.Length >= 10000) { NowUartReceiveStatus = UARTReceiveStatus.DataReceiveFinish; SwitchReceiveBTN.Text = "开始接收"; } } } } catch (Exception ex) { } //} }