/// <summary> /// 添加当前线程 /// </summary> protected void AddCurrentThread() { try { Monitor.Enter(lockObject); if (Application["ThreadMessageCollection"] == null) { Application["ThreadMessageCollection"] = new ThreadMessageCollection(); } ThreadMessageCollection threadTable = Application["ThreadMessageCollection"] as ThreadMessageCollection; threadTable.Add(new ThreadMessage() { ModuleName = Context.Request.Url.ToString(), MethodName = Context.Request.UserAgent, Parameters = new object[] { Context.Request.UserHostAddress }, ThreadId = Thread.CurrentThread.ManagedThreadId, StartTime = DateTime.Now }, Thread.CurrentThread); } finally { Monitor.Exit(lockObject); } }
private void BindGridView() { ThreadMessageCollection threadTable = Application["ThreadMessageCollection"] as ThreadMessageCollection; List <ThreadMessage> datas = null; if (threadTable != null) { datas = threadTable.ToList(); } if (datas == null) { datas = new List <ThreadMessage>(); } this.gvThreads.DataSource = datas; this.gvThreads.DataBind(); }
/// <summary> /// 移除当前线程 /// </summary> protected void RemoveCurrentThread() { try { Monitor.Enter(lockObject); if (Application["ThreadMessageCollection"] == null) { return; } ThreadMessageCollection threadTable = Application["ThreadMessageCollection"] as ThreadMessageCollection; threadTable.Remove(Thread.CurrentThread.ManagedThreadId); } finally { Monitor.Exit(lockObject); } }
protected void btnAbort_Click(object sender, EventArgs e) { int threadId = 0; int.TryParse(((System.Web.UI.WebControls.LinkButton)(sender)).CommandArgument, out threadId); ThreadMessageCollection threadTable = Application["ThreadMessageCollection"] as ThreadMessageCollection; if (threadTable != null) { try { threadTable.AbortThread(threadId); this.lblMessage.Text = string.Format("进程{0}已结束", threadId); } catch (Exception ex) { this.lblMessage.Text = ex.ToString(); } } BindGridView(); }