通常の UI スレッドとバックグラウンド ワーカーを備えたシンプルなアプリがあります。バックグラウンド ワーカーでは、LinkLabels を動的に作成して FlowLayoutPanel に配置する必要があります。これを行うには、LinkLabel の親を FlowLayoutPanel に設定する必要があります。
これは私が現在持っているコードのスニペットですが、「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;