Gewusst wie: veröffentlichen und abonnieren von events in verschiedenen Klassen

Ziel: Zu ändern, ein Bild auf einem Formular, wenn entweder udp oder tcp verwendet die send-Methode

Problem: ich habe keine Ahnung, wie man das event, Event-Handler und die Delegierten ordnungsgemäß eingerichtet

Senden-Schnittstelle

interface ISendData
{
  void Send();
}

Tcp-Verbindung-Klasse

//Need some type of delegate??

public class TCPconnection : ISendData
{
   void Send()
   {
     //how invoke/fire a send Event?
   }
}

UDP-Verbindung-Klasse

//Need some type of delegate??

public class UDPConnection : ISendData
{
   void Send()
   {
     //how invoke/fire a send event?
   }
}

der winform -, die 'sollte' abonnieren, um zu sehen, die gefeuerten events

public class myForm
{
   private DataWatcher datawatcher = new DataWatcher();
   private Image statusIndicator = null;

   public myform()
   {
     initComponents();

     datawatcher.DataSendActive += new DataWatcherSendHandler(DataSending);
     datawatcher.DataSendInactive += new DataWatcherSendHandler(NoDataSending);
   }

   public void DataSending(object sender, DataWatcherArgs e)
   {
      statusIndicator = Properties.resources.greenLight;
   }

   public void NoDataSending(object sender, DataWatcherArgs e)
   {
      statusIndicator = Properties.resources.redLight;
   }

}

Das Event/Event-handler?? Aber ich habe wirklich keine Ahnung, was ich hier mache diese Arbeit zu machen

 public delegate void EventHandler(object sender, EventArgs e);

    class DataWatcher
    {
        public event EventHandler DataSendActive;
        public event EventHandler DataSendInactive;

        protected virtual void onDataSendActive(System.EventArgs e)
        {
            if (DataSendActive != null)
            {
                DataSendActive(this, e);
            }
        }
        protected virtual void onDataSendInactive(System.EventArgs e)
        {
            if (DataSendInactive != null)
            {
                DataSendInactive(this, e);
            }
        }
     }
  • Können Sie das bitte erklären ? Als ich es gelesen habe, Sie wollen, um das Bild zu ändern, wenn irgendein Teil der Anwendung beginnt mit dem senden/hochladen von Daten. Ist das richtig ?
  • Ja, dass ist genau das richtige.
Schreibe einen Kommentar