Example #1
0
        public void Start()
        {
            lock (lockStart)
            {
                if (thread != null)
                {
                    return;
                }
                enabled = true;
            }

            thread = new System.Threading.Thread(
                () =>
            {
                while (enabled)
                {
                    try
                    {
                        ConfigModel config = ConfigManager.GetConfig(this.appId);
                        JsApiTicketModel jsApiTicketModel = SendHandler.GetJsApiTicket(config.AccessToken);
                        jsApiTicketModel.appId            = appId;

                        /**
                         * 为了重用,将JsApiTicket对象以事件的形式广播出去。
                         * 在这里,保存好JsApiTicket,以供项目在其他地方使用。
                         * 你可以保存到数据库中,也可以保存到全局变量中。
                         */

                        if (this.JsApiTicketEvent != null)
                        {
                            try
                            {
                                this.JsApiTicketEvent(jsApiTicketModel);
                            }
                            catch (Exception ex)
                            { }
                        }

                        if (jsApiTicketModel.errcode != 0)
                        {
                            System.Threading.Thread.Sleep(millisecondsErrorContinue);    //如果出现异常,X秒后重新请求.

                            continue;
                        }
                    }
                    catch (Exception e)
                    {
                        System.Threading.Thread.Sleep(millisecondsErrorContinue);    //如果出现异常,X秒后重新请求.

                        continue;
                    }
                    finally
                    {
                    }

                    System.Threading.Thread.Sleep(millisecondsTimeout);
                }
            });
            thread.Start();
        }
Example #2
0
        public void Start()
        {
            lock (lockStart)
            {
                if (thread != null)
                {
                    return;
                }
                enabled = true;
            }

            thread = new System.Threading.Thread(
                () =>
            {
                while (enabled)
                {
                    try
                    {
                        AccessTokenModel accessTokenModel = SendHandler.GetAccessToken(appId, appSecret);
                        accessTokenModel.appId            = appId;
                        string path = System.Web.HttpContext.Current.Server.MapPath("~/Token/token.xml");
                        XDocument x = XDocument.Load(path);
                        x.Root.Element("token").Value = accessTokenModel.access_token;
                        x.Save(path);

                        /**
                         * 为了重用,将AccessToken对象以事件的形式广播出去。
                         * 在这里,保存好AccessToken,以供项目在其他地方使用。
                         * 你可以保存到数据库中,也可以保存到全局变量中。
                         */

                        if (this.AccessTokenEvent != null)
                        {
                            try
                            {
                                this.AccessTokenEvent(accessTokenModel);
                            }
                            catch (Exception ex)
                            { }
                        }

                        if (accessTokenModel.errcode != 0)
                        {
                            System.Threading.Thread.Sleep(millisecondsErrorContinue);    //如果出现异常,X秒后重新请求.

                            continue;
                        }
                    }
                    catch (Exception e)
                    {
                        System.Threading.Thread.Sleep(millisecondsErrorContinue);    //如果出现异常,X秒后重新请求.

                        continue;
                    }
                    finally
                    {
                    }

                    System.Threading.Thread.Sleep(millisecondsTimeout);
                }
            });
            thread.Start();
        }