簡體   English   中英

Thread.CurrentThread.ManagedThreadId和AppDomain.GetCurrentThreadId()之間的區別

[英]Difference between Thread.CurrentThread.ManagedThreadId and AppDomain.GetCurrentThreadId()

我正在運行此代碼:

Parallel.For(0, 8, new ParallelOptions { MaxDegreeOfParallelism = 8 },
    i => {
         Console.WriteLine(i +
             " : Thread ManagedThreadId: " + Thread.CurrentThread.ManagedThreadId +
             " ID: " + AppDomain.GetCurrentThreadId().ToString());
    }
)

輸出:

1 : Thread ManagedThreadId: 10 ID: 9004  
2 : Thread ManagedThreadId:10 ID: 9004  
0 : Thread ManagedThreadId: 7 ID: 12884  
4 : ThreadManagedThreadId: 7 ID: 12884  
5 : Thread ManagedThreadId: 7 ID: 12884

6 : Thread ManagedThreadId: 7 ID: 12884  
7 : Thread ManagedThreadId: 7 ID: 12884  
3 : Thread ManagedThreadId: 10 ID: 9004

這兩個ID有什么區別?

AppDomain.GetCurrentThreadId()已過時:

'不贊成使用AppDomain.GetCurrentThreadId因為當托管線程在光纖(又稱輕量級線程)上運行時,它不提供穩定的ID。 要獲取托管線程的穩定標識符,請使用ThreadManagedThreadId屬性。

http://go.microsoft.com/fwlink/?linkid=14202 '

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM