本帖最后由 minidick 于 2014-9-23 23:36 编辑
新创建的线程不能访问UI线程里的控件,可以用BeginInvoke通过消息的机制让UI线程执行。
可以参考一下这么写。
[C#] 纯文本查看 复制代码
using System.Threading.Tasks;
private void listadd(int i, int ii, string msg)
{
if (InvokeRequired)
{
BeginInvoke((Action)delegate { listadd(i, ii, msg); });
}
else
{
listView1.Items[i].SubItems[ii].Text = msg;
}
}
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < 10; i++)
{
int a = i;
Task.Factory.StartNew(() => listadd(a, 0, "text"));
}
}
|