WinForms diğer geliştiriciler tarafından kullanılacak bir C# dll oluşturuyorum. Bazı nedenlerden dolayı, bu kitaplıktaki yöntemlerin Main (GUI) Thread'den çağrılması ve geliştiriciyi uyarması durumunda böyle bir şeyi (örneğin, log dosyasında) yaptığını tespit etmek istiyorum. Ana iş parçasından arama yöntemini algılamanın herhangi bir mantıklı yolu var mı? Unutma WinForm uygulamasına erişimim yok.C# kitaplığı içinde ana iş parçacığı çalıştırmayı algılama
7
A
cevap
17
Bu durumda kolay bir çözüm, Ana Kullanıcı Arabirimi iş parçacığı üzerinde oluşturulan kitaplık derlemesinde bir statik denetim bildirmektir. Eğer kütüphane ana iş parçacığı aranırsa algılamak istiyorsanız, aşağıdaki
if (MyLibraryControl.InvokeRequired)
//do your thing here
2
en basit seçeneği (eğer şekliniz varsa/kullanışlı kontrol) InvokeRequired kontrol etmektir kullanın.
Eğer yoksa, bir İleti veya Gönderme benzetimini yapmak için SynchronizationContext
kullanmayı deneyebilir ve hangi iş parçacığı olduğunu kontrol edebilirsiniz? Gönderme veya Gönderme, kullanıcı arayüzü iş parçacığına geçecektir.
İlgili konular
- 1. "Uyarı", ana() iş parçacığı içinde oluşturulmadı "
- 2. Ana iş parçacığı
- 3. iş parçacığı içinde yerel depolama iş parçacığı
- 4. NSThread sleepfortimeinterval ana iş parçacığı
- 5. Python işlevini yürütme Ana iş parçacığında Kukla iş parçacığı içinde yürütme Kukla iş parçacığı
- 6. AudioServicesPlaySystemSound ve ana iş parçacığı
- 7. Ana iş parçacığı neden bekler
- 8. Ayrı iş parçacığı içinde
- 9. CountdownTimer UI iş parçacığı güncelleştiren çalışan iş parçacığı içinde
- 10. WPF iş parçacığı C#
- 11. İş parçacığı, iki iş parçacığı arasındaki iletişim C#
- 12. Boto kitaplığı iş parçacığı güvenli mi?
- 13. Yükseltme iş parçacığı kitaplığı nasıl derlenir
- 14. C# iş parçacığı denetimini temizleme
- 15. Ana iş parçacığı üzerinde kod yürütme zorlaması
- 16. OutOfMemoryError ayrı bir Java iş parçacığı içinde
- 17. Ana iş parçacığı üzerinde hizmet nasıl çalıştırılır?
- 18. Parse.enableLocalDatastore() - Uyarı: Ana iş parçacığı üzerinde
- 19. iOS ana iş parçacığı birkaç saniye donuyor
- 20. UICollectionView bloklarını kilitleme ana iş parçacığı
- 21. Bir aramayı klonlamak, ana iş parçacığı
- 22. İşleyici/iş parçacığı içinde Tost nasıl görüntülenir?
- 23. C++ Çoklu iş parçacığı eşitlemesi
- 24. Race Condition C iş parçacığı
- 25. C#: İş parçacığı karşılaşma olayları
- 26. C++ haritalarının iş parçacığı güvenliği
- 27. Diğer iş parçacıkları tamamlanıncaya kadar ana iş parçacığı nasıl engellenir?
- 28. iPhone: İş parçacığının ana iş parçacığı nasıl belirlenir?
- 29. Bir iş parçacığı içinde nasıl eklenir?
- 30. iş parçacığı
Bu, soru için doğru cevap olarak işaretlenmelidir. –