C# ve kesinlikle OOP kavramları için oldukça yeniyim .. bu yüzden sorumun aptallığını affedin.Bir olay işleyici ile çalışma - ama her zaman değil .. (Nasıl yaparım ...)
İletişim kurmak istediğim bir sistemim var. İlişkili bir yanıtla çağrılabilen bir dizi komut var. (İletişim TCP/IP veya Seri üzerinden yapılır) (Çoklu aktarım mekanizmalarını kullanabilmem için SendMessage ile bir Arayüz uygulardım)
Her komut için bir yöntem oluşturmak ve sonra bunları açıklamak yeterlidir. Cihaz aynı zamanda hareket etmek istediğim mesajların da yayınlanmasına izin veriyor, bu yüzden iyi çalışan bir olay işleyici kullanıyordum ..
Olay işleyicisinde şu anda OK ve ERROR stili mesajlarını yakalarım ancak ideal olarak, yukarıdaki yöntemden de komutu göndermek ve bir hatayı yakalamak ve komuta dayalı bir bool değerini döndürmek istiyorum.
Herkes böyle bir şey yapabileceğimi ve bana doğru yönde işaret edebileceğimi düşünebilir mi?
Teşekkür
David
Çok geniş: Eğer olay yükseldikçe
Sinyal aynı anda:
Aksi takdirde basit bir engelleyici olarak kullanmak için iletişim sınıfının içindeki yöntemi olurdu şu anda ne yapıyorsun ve ne istiyorsun? İç yöntemde, etkinliğe abone olabilir, zaman aşımı veya olay işleyicisi çağrılana kadar yürütmeyi engelleyebilir ve ardından bu soru devam ederse devam edebilirsiniz. – Sinatr
Sanırım mevcut olay işleyicisini herhangi bir şey yapmasını engelleyebilirim - örn. kaldırın ve sonra yalnızca bu komutlar yanıtını almak için yöntem içinde yanıtı yakalayın ve sonra tekrar etkinleştirin, ancak doğru hissetmiyor –
Ardından olay işleyicisini kullanmayın. Başka bir sinyal mekaniği sağlayın (örn. 'Monitor.Pulse'/'Monitor.Wait'). Geçmişte, etkinliğe abone olan, belirli bir yanıtı bekleyen ve sonra geri dönecek olan iletişim sınıfı için yardımcı yazdım. Ama sonra 'Monitor' varlığını ([Albahari] (http://www.albahari.com/threading/part4.aspx#_Signaling_with_Wait_and_Pulse)) ve o zamandan beri kullanıyorum. – Sinatr