【发布时间】:2012-02-08 13:43:42
【问题描述】:
我正在尝试从另一个类填充列表视图,但出现此错误: " 跨线程操作无效:控件 'listView1' 从创建它的线程以外的线程访问。"
在我的班级中,我这样声明我的列表视图:
class CheckBlankPages
{
public String[] pdfFiles
{ get; set; }
ListView _ListVireRef;
public int NrCRT = 1;
public CheckBlankPages(String[] pdfFiles = null, ListView listView = null)
{
this.pdfFiles = pdfFiles;
_ListVireRef = listView;
}
public void StartCheckingPDF()
{
foreach (string pdf in pdfFiles)
{
String[] itm = { (NrCRT++).ToString(), pdf };
ListViewItem item = new ListViewItem(itm);
_ListVireRef.Items.Add(item);
}
}
}
在我的 MainForm 中我使用以下代码:
DialogResult rezultat = openFileDialog1.ShowDialog();
if (rezultat == DialogResult.OK)
{
CheckBlankPages ck = new CheckBlankPages(openFileDialog1.FileNames, listView1);
Thread CheckPDFs = new Thread(new ThreadStart(ck.StartCheckingPDF));
CheckPDFs.Start();
}
怎么了?
【问题讨论】:
标签: c# .net winforms multithreading