![](/img/trans.png)
[英]Replacing AppDomain.GetCurrentThreadId(); with ManagedThreadId
[英]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。 要獲取托管線程的穩定標識符,請使用Thread
的ManagedThreadId
屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.