1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
public class Communication
{
// déclaration type délégué
public delegate int DataReceivedHandler(string data);
// variable du type délégué donnée recue
public DataReceivedHandler dataReceivedHandler=null;
// ...
//-----------------------------------------------------------
// traitement d'attente en réception des données
// effectué dans une boucle, exécuté par un thread
public void RunReceptionData()
{
string data= null;
// boucle d'attente
while(true)
{
// donnée en reception
// ... remplir variable data
// appel délégué pour signaler présence donnée recue
if( dataReceivedHandler != null)
dataReceivedHandler(data);
// suite traitement ...
}
}
}
private void Form1_Load(object sender, System.EventArgs e)
{
// instancie l'objet pour communiquer
comm= new Communication();
// instancie le délégué
comm.dataReceivedHandler= new Communication.DataReceivedHandler(this.DonneeRecue);
}
//-----------------------------------------------------------
// déclenché par le délégué lorsque une donnée est recue
private void DonneeRecue(string data)
{
// affiche le message recu
MessageBox.Show("donnée recue: "+data);
} |
Partager