Ejemplo n.º 1
0
        /// <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());
            }
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
    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.");
    }
Ejemplo n.º 4
0
        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.");
        }
Ejemplo n.º 5
0
        /// <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;
        }
    }
Ejemplo n.º 7
0
    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;
        }
    }
Ejemplo n.º 8
0
        /// <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());
            }
        }
Ejemplo n.º 9
0
        /// <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);
            }
        }
Ejemplo n.º 10
0
        /// <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) { }
            //}
        }