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(); }
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(); }