3
假設我有一個線程對象的引用,如:如何確定一個Thread對象是否是.NET中的當前線程?
System.Threading.Thread thread;
如果我想,以確定當前線程是否是此對象表示,應該在下面的代碼中使用?
bool currentThread = (thread.ManagedThreadId == Thread.CurrentThread.ManagedThreadId);
我敢肯定,這將工作正常,但似乎很奇怪,不會有一個更直接的方法來檢查這一點。有一個嗎?
酷。我想知道這是否會奏效。我問,因爲我看到別人的代碼比較線程ID,這使我認爲可能有多個與給定線程相關的線程對象(可能是由.NET庫內部維護的線程對象)。 – Jeremy
@Jeremy在閱讀這個問題時,這也是我關心的問題。有沒有一種情況下可以創建一個線程,其中'線程'以某種方式引用了一個不能被'Thread.CurrentThread'識別的實例? –
理論上,.NET不必將.NET線程與操作系統線程相匹配,但AFAIK當前的實現以這種方式工作,但文檔確實強調了您不應該依賴這種情況的觀點。 –