Thread + Gestion évènment
Salut à tous,
je débute en .net... J'aimerais réalisé un classe qui est munie d'un thread effecutant un contrôle d'une valeur sur un automate. Lorsque la valeur de mon automate change un évènement est déclenché. La méthode LamReadWord récupère une valeur. J'ai de la pène à comprendre comment structurer mon code avec le thread et la gestion d'évènement. Le but que étant que j'ai une méthode qui soit déclenché lors d'un changement. Vu que cette classe est en compilée en dll il est impératif que je travaille avec un évènement... Merci d'avance pour votre aide...
Code:
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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
public String LamReadWord(String readAddress)
{
ushort[] MyWordArray = new ushort[Convert.ToUInt16("1")];
ushort MyStartAddress = Convert.ToUInt16(readAddress);
bool ReadOutput = false;
int result = this.Read(MyStartAddress, ref MyWordArray, ReadOutput);
if (result == 0)
{
return MyWordArray[0].ToString();
}
else
{
System.Console.Write("ERROR - Read returns: " + result.ToString() + "\r\n");
return "error";
}
}
public delegate void ChangeHandler(object sender, ChangeEventArgs e);
public event ChangeHandler valueChanged;
public static void run(string o, string n)
{
Thread t = new Thread(
new ThreadStart(
ChangeEventArgs e = new ChangeEventArgs(o,n);
while (t.IsAlive)
{
if (e.isChanged)
{
valueChanged(this,e);
}
}
));
t.Start;
}
public void onChange(object sender, ChangeEventArgs e)
{
Console.WriteLine("la vakeur a changée");
}
}
public class ChangeEventArgs : EventArgs
{
public string oldValue;
public string newValue;
public ChangeEventArgs(string o, string n)
{
oldValue = o;
newValue = n;
}
public bool isChanged()
{
if (oldValue != newValue) { return true; }
else { return false; }
} |