【发布时间】:2012-01-07 19:32:47
【问题描述】:
我有一个简单的应用程序,带有常用的 UI 线程和后台工作程序,我需要在后台工作程序中动态创建 LinkLabels 并将它们放置在 FlowLayoutPanel 中。为此,我需要将 LinkLabel 的父级设置为 FlowLayoutPanel。
这是我目前拥有的代码的 sn-p,但是,我在 'l.Parent = panel;' 行上得到了臭名昭著的“跨线程操作无效”
我对多线程操作相当陌生,但我认为我正确地调用了,但显然不是。有什么建议吗?
LinkLabel l = new LinkLabel();
if (rssFeedPanel.InvokeRequired) {
FlowLayoutPanel panel = null;
rssFeedPanel.Invoke(new MethodInvoker(delegate { panel = rssFeedPanel; }));
l.Parent = panel;
}
else
l.Parent = rssFeedPanel;
【问题讨论】:
标签: c# .net multithreading invoke invokerequired