[問題] 用thread.ID取得Name和執行中的method

看板C_Sharp作者 (改變 改變 改變)時間15年前 (2010/07/07 14:26), 編輯推噓0(0011)
留言11則, 2人參與, 最新討論串1/1
不好意思,我有個問題,谷哥找不到我要的答案,又剛大致掃了一下沒找到...就厚顏提問了 ... 如果問題太...請小力鞭... >< 是這樣的, 我需要做一個介面作為監控server使用 監控內容用ListView列出該server的thread如下列幾毎項目: 1.ID 2.Name 3.Executing method 4.Location 5.Priority 6.Status 我先用 Process[] processList = Process.GetProcesses(); 取得所有process後,再以 foreach (Process process in ProcessList) { if(process.ProcessName.StartsWith("XXXService")) { foreach (ProcessThread thread in process.Threads) { ListViewItem lvItem = new ListViewItem(thread.Id.ToString()); lvItem.SubItems.Add(""); => Name,要放thread name的,但我捉不到 >< lvItem.SubItems.Add(""); => Executing Method,要放該thread執行中的method, 仍是捉不到 lvItem.SubItems.Add(""); => Location,要放該method的所在位置,因前兩項 做不出來,也無法試作>< lvItem.SubItems.Add(thread.CurrentPriority.ToString()); lvItem.SubItems.Add(thread.ThreadState.ToString()); lstThreadInformation.Items.Add(lvItem); } } } 我想用thread id 找出 thread name 跟 executing method, 找不到可用的屬性 用谷哥找也沒找到可行的方案 顯然我在 C# 上的知識還很淺,以致無法很快的找出可解方法 QQ 所以只好來問問看大家,如果問得很笨,還請多多包涵^^; 十分感謝!!! m(^ ^)m -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.39.59.247

07/07 15:51, , 1F
Thread不是只有ID沒有Name嗎...
07/07 15:51, 1F

07/07 15:51, , 2F
他又不是Process 要Name幹麻 = =
07/07 15:51, 2F

07/07 17:39, , 3F
ProcessThread只有ID,沒有Name, Thread 則是兩者都有
07/07 17:39, 3F

07/07 17:41, , 4F
一個是System.Diagnostics.ProcessThread 另一個是System.
07/07 17:41, 4F

07/07 17:42, , 5F
Threading.Thread 兩者不一樣,但若用Thread的ID可以對上
07/07 17:42, 5F

07/07 17:42, , 6F
ProcessThread的ID,我目前在網路上找到的都只有這個對應方
07/07 17:42, 6F

07/07 17:43, , 7F
法,但是要反方向的由ProcessThread的ID對應找到Thread就沒
07/07 17:43, 7F

07/07 17:44, , 8F
有了><, 這就是令人苦惱的地方啊...><
07/07 17:44, 8F

07/07 17:45, , 9F
Name就我所知,平常可拿來外部強制結束或了解Thread狀態用
07/07 17:45, 9F
所以我的想法是列出系統中所有System.Threading.Thread的threads 再利用processthreads的id和threads相互比對,就可以拿到我要的了 但就是找不出列出所有threads的方法 @@ ※ 編輯: ctangel 來自: 60.251.144.4 (07/07 17:49)

07/07 18:21, , 10F
MSDN論壇好像有類似的討論,但是我忘記在哪了...
07/07 18:21, 10F

07/07 18:21, , 11F
你可以去翻翻看,也是在C#板
07/07 18:21, 11F
文章代碼(AID): #1CD1ulQy (C_Sharp)