Event vs WinForm problem
Hej Eksperter,Jeg sidder og koder lidt med events, jeg støder på et problem som jeg umiddlebart ikke kan se en løsning på (derfor man spørger her jo :) )
Jeg har en winform og en klasse, når min event bliver trigget i min klasse, skal der opdateres en værdi i min winform.
Jeg har barberet godt og grundigt i min kode, og smider her det vigtigste:
Windows form:
public partial class Form1 : Form
{
ModemHandle HandleModem;
private void Form1_Load(object sender, EventArgs e)
{
HandleModem = new ModemHandle("com1");
HandleModem.NewSignal += new ModemHandle.SignalDelegate(HandleModem_NewSignal);
}
private void HandleModem_NewSignal(object sender, int SignalStrength)
{
int test = SignalStrength; //Virker
textbox.Text = SignalStrength.ToString(); //Fejler
}
}
Klasse:
class ModemHandle
{
public delegate void SignalDelegate(object sender, int SignalStrength);
public event SignalDelegate NewSignal;
private void OnNewSignal(int SignalStrength)
{
if (NewSignal != null)
NewSignal(this, SignalStrength);
}
}
Jeg kan sagtens smide værdien fra min event ned i en variabel, men at smide det ind i en control i min winform giver denne fejl:
System.InvalidOperationException was unhandled
Message="Cross-thread operation not valid: Control '' accessed from a thread other than the thread it was created on."
