2011-02-03 13 views
6

ama mizah beni ...Visual Studio'nun, Konu Pencere "Ana Konu' Ben büyük olasılıkla belirgin bir şey eksik

o hata ayıklama ile yararlı olduğu gibi her zaman uygulamalarımdaki önemli konuları isim mi/tanımlama yok nasıl logging vb. Program başlangıcında Thread.CurrentThread.Name aracılığıyla ana iş parçacığının adını sorgularsanız, null'u geri alırsınız. Bu şekilde, her zaman gerçekleşen ilk şeyin, ana iş parçacığının (ve diğer ilgili iş parçacıklarının) güzel bir anlamlı olarak atanması olduğundan emin olurum. Gelecekte başvurunun adı

Bugüne kadar çok fazla düşünmedim, ancak Visual Studio'daki Konular penceresine bakarken (herhangi bir evre isimleri atanmadan önce) ed vb), "Ana Konu" adlı özel bir kategori, "Ana Konu" (aynı zamanda gerçek iş parçacığı adı değil) de okuyan bir psuedo adının yanı sıra atanır.

Yönetilen bir perspektiften bakıldığında, .NET, bir uygulamanın ana iş parçacığını (en azından görebildiğim şekli) belirten System.Threading.Thread veya System.Diagnostics.ProcessThread öğelerinde anlamlı hiçbir şey göstermez. Ben Windows Process and Thread Functions listesine baktım, ve yine, ben açık bir şey görmedim (belki OpenThread?).

Eğer Threads penceresinin "Ana İplik" özel kategorisini nasıl atandığını bilen biri var mı?

cevap

5

Hata ayıklayıcı, DEBUG_PROCESS seçeneğini kullanarak CreateProcess ile hata ayıklamaya başlar. Ana iş parçacığının tanıtıcısı PROCESS_INFORMATION.hThread öğesinde döndürülür. Takma, muhtemelen, DebugActiveProcess() ile iliştirildikten sonra WaitForDebugEvent gelen ilk CREATE_THREAD_DEBUG_EVENT bildirimi bildiren biraz daha zorlayıcıdır.

Daha yakından bakmak isterseniz, MDbg için source code kullanılabilir.

+0

Ah, bu mantıklı; bilgi için teşekkürler. SourceCode kesinlikle ilginç. –

+0

CREATE_THREAD_DEBUG_EVENT bildirimleri eşzamansızdır. Teslimat emrinin garanti edildiğinden emin değilim. Ancak, CreateProcess tarafından döndürülen bilgi mantıklı. –