修改线程时遇到了问题

9 浏览
0 Comments

修改线程时遇到了问题

可能是重复的问题:

跨线程操作无效:从非创建它的线程访问控件

跨线程操作无效

这是我的方法:(我看到了一些其他与跨线程相关的答案,但不明白这些解决方案如何适用于我的特殊情况。)

private void live_refresh()
{
    while (true)
    {
            viewBackup.Nodes.Clear();
            Control.storage.refresh_files_list();
            viewBackup.Nodes.Add(Control.storage.get_files_node());
            List list = Control.sched.get_difference();
            this.viewCopy.Items.Clear();
            foreach (FileInfo file in list)
                this.viewCopy.Items.Add(file.FullName.Substring(Control.filer.get_path().Length + 1));
        }
    }
}

抛出异常:“跨线程操作无效:从非创建它的线程访问控件'viewBackup'。”

有人能帮我解决这个问题吗?除了使用Invoke()之外还有其他方法吗?我不明白。

0