Ich habe ein Problem, eine Kontrolle auf meinem ui von einem Thread zu aktualisieren erstellt mitC# WM6 Compact Framework Kreuz Thema Kommunikation Problem
ThreadPool.QueueUserWorkItem
Innerhalb dieses Threads Ich rufe
addControlToPanel(li);
Wie gezeigt hier
private delegate void addControlToPanelDelegate(ListItem li);
private void addControlToPanel(ListItem li)
{
if (panel1.InvokeRequired)
{
addControlToPanelDelegate d = new addControlToPanelDelegate(addControlToPanel);
panel1.Invoke(d, new object[] { li });
}
else
{
panel1.Controls.Add(li);
}
}
auf den ersten Eintrag zu addControlToPanel() panel1.InvokeRequired == true, so ein Delegierter inst antiated und dann aufgerufen, jetzt auf diesen Eintrag in addControlToPanel(), panel1.InvokeRequired == false, so dass ich das Steuerelement zum Panel hinzufügen.
Mein Problem ist, dass auch nach gegen die Steuer Aufruf und panel1.InvokeRequired falsch zu sein ich einen Fehler auf dem
bekommenpanel1.Controls.Add(li);
Linie unter Angabe der üblichen
Control.Invoke muss die Interaktion mit verwendet werden Steuerelemente, die in einem separaten Thread erstellt wurden.
Kann jemand das Problem erkennen? Die Verwendung von invoke, um auf Steuerelemente in einem anderen Thread zuzugreifen, ist etwas, was ich schon oft getan habe, aber dieses hier hat mich ratlos gemacht!
TIA
OneShot