private void Refresh_Click(object Sender, EventArgs e) { ThreadInfoPanel TPanel = Sender as ThreadInfoPanel; int Id = Convert.ToInt32(TPanel.Tag); if (ThreadDic.ContainsKey(Id)) { Thread CurThread = ThreadDic[Id]; TPanel.SetThreadInfo(CurThread); } }
public void ShowPanelMsg(ThreadInfoPanel sender, object msg) { sender.Msg = msg.ToString(); int Id = Convert.ToInt32(sender.Tag); if (ThreadDic.ContainsKey(Id)) { sender.SetThreadInfo(ThreadDic[Id]); } //if (sender.InvokeRequired) // sender.SetThreadInfo(); }
private void Btn_PriorityClick(object Sender, EventArgs e) { ThreadInfoPanel TPanel = Sender as ThreadInfoPanel; int Id = Convert.ToInt32(TPanel.Tag); if (ThreadDic.ContainsKey(Id)) { Thread CurThread = ThreadDic[Id]; if (CurThread.IsAlive) { int CurPriority = (int)CurThread.Priority; if (CurPriority >= 4) { CurPriority = 0; } else { CurPriority++; } CurThread.Priority = (ThreadPriority)CurPriority; } TPanel.SetThreadInfo(CurThread); } }
private void Btn_ActClick(object Sender, EventArgs e) { ThreadInfoPanel TPanel = Sender as ThreadInfoPanel; int Id = Convert.ToInt32(TPanel.Tag); if (ThreadDic.ContainsKey(Id)) { if (ThreadDic[Id].IsAlive) { ThreadDic[Id].Abort(); if (TPDic.ContainsKey(ThreadDic[Id].ManagedThreadId)) { TPDic.Remove(ThreadDic[Id].ManagedThreadId); } TPanel.SetThreadInfo(ThreadDic[Id]); } else { Thread thread = new Thread(TPanel.ThreadFunc); thread.Name = DateTime.Now.ToLongTimeString(); TPanel.Tag = thread.ManagedThreadId; TPanel.num = 0; TPanel.GroupBox.Text = thread.Name; if (!TPDic.ContainsKey(thread.ManagedThreadId)) { TPDic.Add(thread.ManagedThreadId, TPanel); } else { TPDic[thread.ManagedThreadId] = TPanel; } if (!ThreadDic.ContainsKey(thread.ManagedThreadId)) { ThreadDic.Add(thread.ManagedThreadId, thread); } else { ThreadDic[Id] = thread; } thread.Start(); TPanel.SetThreadInfo(thread); } } //if(Sender is ThreadInfoPanel) //{ // ThreadInfoPanel TPanel = Sender as ThreadInfoPanel; // int ManagedThreadId = -1; // foreach (KeyValuePair<int, ThreadInfoPanel> pair in TPDic) // { // if(TPanel == pair.Value) // { // ManagedThreadId = pair.Key; // } // } // foreach(ProcessThread Thread in Process.GetCurrentProcess().Threads) // { // if(Thread.Id== ManagedThreadId) // { // Thread.ThreadState // } // } //} }