Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 19013|Yanıt: 0

[Kaynak] C#, uygulamanın yalnızca bir örneğinin doğru yazılmasına izin verir

[Bağlantıyı kopyala]
Yayınlandı 10.12.2016 14:35:34 | | |
C# programları sadece bir örnekin doğru kodu çalıştırmasına izin verir
http://www.itsvse.com/thread-3391-1-1.html
(Kaynak: Architect)


Aşağıdaki kod da yanlış!! Yukarıdaki doğru kod!!


Bazen sadece bir uygulamanın çalışmasına izin vermemiz gerekir ve süreç başladığında, bir uygulamanın çalıştığını fark ederse otomatik olarak durur. Genellikle bunu Ana fonksiyonda Mutex mutex aracılığıyla uygularız, bu genellikle şöyle yazılır:

Cevap ararken genellikle aceleyle gelip gideriz, Mutex'in özelliklerini ve önlemlerini görmezden geliriz. Basit bir testten sonra, tamam, al ve kullan. Bu noktada, önemli bir önkoşulu göz ardı ediyoruz:Mutex adlandırma gelenekleri. Yukarıdaki yazım yöntemi, tek bir kullanıcı altında sorunsuz çalışır; Çok kullanıcılı sistemde her kullanıcı bir örnek başlatabilir, bu yüzden tek bir örnek garanti edilemez.

Eğer bir terminal sunucuda kullanmanız gerekiyorsa ve sadece bir örnek izin vermeniz gerekiyorsa, aşağıdaki yöntemi kullanın:


İşte MSDN'nin tanımı:


Terminal hizmetleri çalıştıran sunucularda, adlandırılmış sistem mutex'i iki seviyeli görünürlüğe sahip olabilir. İsim "Global\" önekiyle başlarsa, mutex tüm terminal sunucu oturumlarında görünürdür. İsim "Local\" önekiyle başlarsa, mutex yalnızca onu oluşturan terminal sunucu oturumunda görünürdür. Bu durumda, sunucudaki diğer her terminal sunucu oturumu aynı isimle ayrı bir mutex olabilir. Eğer bir mutex oluşturuyorsanız ve bir ön ek belirtmediğinizde, "Local\" preekini alır. Bir terminal sunucu oturumunda, farklı isim öneklerine sahip iki mutex bağımsız mutextir ve bu iki mutex terminal sunucu oturumundaki tüm süreçlere görünürdür. Yani, "Global" ve "Local" önekleri, mutex adının terminal sunucu oturumuna göre aralığını tanımlar, süreci değil.






Önceki:COM interop için bileşenlerin kaydı gri olarak kullanılmıştır
Önümüzdeki:C# programları sadece bir örnekin doğru kodu çalıştırmasına izin verir
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com