Eğer makineleri geniş bir yelpazede bu uygulamayı dağıtmak için planlıyorsanız, sen Bu kodun bazen başarısız olabileceğini bilmek ister.
.NET'te Process
sınıfı, bazı makinelerdeki kayıt defteri aracılığıyla devre dışı bırakılabilen Windows performans sayaçlarına dayanmaktadır. Bu olduğunda, Process.GetProcessesByName
yöntemine yapılan çağrı bir istisna atar.
Bu durum, diğerlerinin yanı sıra, makinenin performansını iyileştirmek için performans sayaçlarını devre dışı bırakan çeşitli "temizleme/performans ayarlama" uygulamalarına sahip makineler için tipik bir durum olduğunu düşünüyorum. Geçtiğimiz günlerde bu durum, müşterimin müşteri makinelerinin bir kısmının tekrar tekrar tekrar ağrımasına neden oldu. Bu da beni başka bir (eğer biraz sınırlı veya hantal) alternatifi keşfetmeye götürdü, örneğin doğrudan doğruya PInvoke kullanarak Win API'ye çağrı yapmak gibi. süreçler.
Başka bir olası çözüm, yükleyicinizin veya uygulamanızın performans sayaçlarını etkinleştirmesini veya en azından devre dışı bırakılmayla nasıl baş edeceğini bilmesini sağlamaktır.
Bu kesinlikle doğru! Teşekkürler! –