奇怪的编译错误“线程间操作无效: 从不是创建控件“listView1”的线程访问它”
各位大侠们 小弟又遇到问题了!不知道这是什么原因希望大家能帮忙下 我用的编程工具是VS2008和SQL2005,在编译时候出现:“线程间操作无效: 从不是创建控件“listView1”的线程访问它。”而且是指向:“this.listView1.Items.Clear();”这行 以下是代码。先谢谢了!
private void f5(object source, System.Timers.ElapsedEventArgs e)
{
this.listView1.Items.Clear();
SqlOperations sqlop = new SqlOperations();
DataSet ds = new DataSet();
try
{
int n;
int o;
string readmmoney = "select mmoney from VIP where muse = 1";
ds = sqlop.ReadDataBySql(readmmoney);
string mmoney = ds.Tables[0].Rows[0][0].ToString();
int m = ds.Tables[0].Rows.Count;
int[] vmoney = new int[m];
for (o = 0; o < ds.Tables[0].Rows.Count; o++)
{
vmoney[o] = Convert.ToInt32(ds.Tables[0].Rows[o][0].ToString());
}
string readminfo = "select * from VIPuse";
ds = sqlop.ReadDataBySql(readminfo);
if (ds.Tables[0].Rows.Count == 0)
{
//MessageBox.Show("现在还没有会员刷卡上机!", "温馨提示:", MessageBoxButtons.OK);我该 得
return;
}
else
{
for (n = 0; n < ds.Tables[0].Rows.Count; n++)
{
DateTime time1 = Convert.ToDateTime(ds.Tables[0].Rows[n][4].ToString());
DateTime time2 = Convert.ToDateTime(DateTime.Now.ToString());
string datediff = DateDiff(time1, time2);
// string time = Convert.ToString(dateDiff);
ListViewItem li = new ListViewItem();
li.SubItems.Clear();
li.SubItems[0].Text = ds.Tables[0].Rows[n][1].ToString();
li.SubItems.Add(ds.Tables[0].Rows[n][2].ToString());
li.SubItems.Add(ds.Tables[0].Rows[n][3].ToString());
li.SubItems.Add(datediff.ToString());
li.SubItems.Add(ds.Tables[0].Rows[n][5].ToString());
li.SubItems.Add(vmoney[n].ToString());
li.SubItems.Add(ds.Tables[0].Rows[n][6].ToString());
li.SubItems.Add("正常使用");
this.listView1.Items.Add(li);
//this.listView1.Items[a++].ImageIndex = 13;
}
}
}
catch (Exception)
{
//MessageBox.Show("现在还没有会员刷卡上机!", "温馨提示:", MessageBoxButtons.OK);我该 得
return;
}
}