private void ThreadNotification(THREAD thread) { if (thread.State != THREADSTATE.TERMINATED){ FormCotrolHelper.ControlInvike(threadList, () => { ListViewItem item = new ListViewItem(thread.Id.ToString().Trim()); item.Name = thread.Id.ToString().Trim(); item.Text = thread.Id.ToString().Trim(); item.SubItems.Add("Alive"); item.ForeColor = Color.GreenYellow; threadList.Items.Add(item); }); }else{ FormCotrolHelper.ControlInvike(threadList, () => { ListViewItem[] item = threadList.Items.Find(thread.Id.ToString().Trim(), true); if (item != null) { item[0].ForeColor = Color.Red; item[0].SubItems[1].Text = "Dead"; } }); } }
static private void ThreadNotification(THREAD thread) { Console.WriteLine("Thread" + thread.Id); }
void debug_ThreadNotification(CorDebugAppDomain app, CorThread thread, bool isAlive) { THREAD _thread = new THREAD(); _thread.Id = thread.ID; _thread.ProcessId = debug.Process.ID; if (isAlive){ _thread.State = THREADSTATE.RUNNING; liveThreads.Add(thread.ID, thread); } else { _thread.State = THREADSTATE.TERMINATED; liveThreads.Remove(thread.ID); deadThreads.Add(thread.ID, GetCallStack(thread)); } ThreadNotification(_thread); }