2013-10-18 37 views
0

考慮下面的代碼,線程「<No Name>」已退出 - 想給它一個名字

Process Proc=null; 
ProcessStartInfo DirectX=new ProcessStartInfo("dxsetup.exe", "/silent"); 
DirectX.WorkingDirectory="Tools\\directx"; 
Proc=Process.Start(DirectX); 

我在終止處理得到The thread '<No Name>' (0x1eec) has exited with code 0 (0x0).在Visual Studio中的輸出窗口。

我想將文字"No Name"更改爲描述性內容,但我在網上找到的所有內容均適用於,這似乎不適用於Process對象。

有人能指出我正確的方向嗎?

在Visual Studio 2010中使用C#.NET 4.0構建。在Windows 7 64位上運行。

+1

你用'Process'開頭的東西並不是那種方式。您看到停止的那些線程可能是ThreadPool線程,它們沒有工作要做並正在被銷燬。 –

+0

你爲什麼想這樣做?似乎基於猜測我的一個公式。 – spender

+0

@spender不知道你在暗示什麼,我正在尋找使輸出窗口更具描述性。 – kmort

回答

7

程序中總是有很多線程在運行,你並沒有直接啓動自己。就像.NET線程池中的線程,本地Windows線程池和RPC線程池一樣,當池管理器修剪池時,您將看到它們退出。 Process類本身使用tp線程,這就是例如引發Exited事件的方式。

你不能命名它們,你沒有啓動它們,也沒有辦法獲得對這樣的線程的引用。命名一個線程池線程is possible如果它運行你的代碼,但它是一個黑客。

減少噪音的最簡單方法是在調試時右鍵單擊輸出窗口並取消「線程退出消息」。

+0

考慮到我的問題,在調試器中多做了一些探索,實際上這是一個愚蠢的問題。 Process.Start()旋轉了一個新的過程,而不是一個線程。雖然那些關閉的線程肯定與我的流程結束時有關(如上面的多條註釋所示),但是沒有任何運行流程本身。正如漢斯所說,我將關閉「線程退出消息」。謝謝大家。 – kmort