opdatering fra tråd med delegate
jeg har problemer med at komunnikere fra en trád og til mainForm'entroede at jeg kunne løse problemet med delegates
men jeg kan ikke få det til at fungere
får en Exception
Controls created on one thread cannot be parented to a control on a different thread
det som jeg vil gøre er at oprette og tilføje en TabPage til en TabControl
koden som jeg har lavet
i min mainForm
...
public delegate void joinChannelDelegate(VyPacket packet);
private joinChannelDelegate joinChannelDel;
i mainforms constructor
joinChannelDel = new joinChannelDelegate(userJoins);
decode = new Decode(this,new PMCallback(visPrivateMessage),joinChannelDel);
recive = new Listen(decode);
metoden i mainForm som delegaten peger på
public void userJoins(VyPacket packet)
{
bool eksists=false;
//checks if channel exists
foreach(Channel ch in channels)
{
if(ch.Name==packet.Channel)
{
eksists=true;
break;
}
}
if(!eksists)
{
Channel ch = new Channel(packet.Channel);
channels.Add(ch);
tabControl1.TabPages.Add(ch); //<--- Exception kommer her
}
}
i Decode klassen
private MainForm.joinChannelDelegate joinChannelCallback;
public Decode(MainForm.joinChannelDelegate joinChannelCallback)
{
this.joinChannelCallback = joinChannelCallback;
}
... hvor jeg prøver at kalde metoden i main
joinChannelCallback(packet);
