ListView
バックグラウンドワーカーを使用して、ボタンがクリックされた後に各アイテムをループし、作業を行います。
private void bParsePosts_Click(object sender, EventArgs e)
{
parseWorker.RunWorkerAsync(this.lvPostQueue);
}
で、〜がある:
private void parseWorker_DoWork(object sender, DoWorkEventArgs e)
{
// Loop through each item
for (int i = 0; i < lvPostQueue.Items.Count; i++)
{
string title = lvPostQueue.Items[i].SubItems[0].ToString();
string category = lvPostQueue.Items[i].SubItems[1].ToString();
string url = lvPostQueue.Items[i].SubItems[2].ToString();
lvPostQueue.Items[i].SubItems[3].Text = "Done";
}
}
ただし、次のエラーが表示されます。
Cross-thread operation not valid: Control 'lvPostQueue' accessed from a thread other than the thread it was created on.
lvPostQueue
そのバックグラウンド ワーカー内からコントロールを操作するにはどうすればよいでしょうか。
ありがとう。