代码如下:
private void tsbImport_Click(object sender, EventArgs e)
{
this._importThread = new Thread(new ThreadStart(readItem));
this._importThread.Start();
} private void readItem()
{
foreach (ListViewItem item in this.lvwFiles.Items)//异常地方
{
//...
}
}运行后,出现异常提示“线程间操作无效:从不是创建控件lvwFiles线程访问它”。
如何解决,请各位帮修改代码,多谢!
private void tsbImport_Click(object sender, EventArgs e)
{
this._importThread = new Thread(new ThreadStart(readItem));
this._importThread.Start();
} private void readItem()
{
foreach (ListViewItem item in this.lvwFiles.Items)//异常地方
{
//...
}
}运行后,出现异常提示“线程间操作无效:从不是创建控件lvwFiles线程访问它”。
如何解决,请各位帮修改代码,多谢!
{
foreach (ListViewItem item in this.lvwFiles.Items)//异常地方
{
Read(item);
}
}
private delegate void ReadDelegate(ListViewItem item);private void Read(ListViewItem item)
{
if (item.InvokeRequest)
{
item.Invoke(new ReadDelegate(Read), new object[] {item};
}
else
{
// read here.
}
}
线程启动后,在
foreach (ListViewItem item in this.lvwFiles.Items) 就出现异常了,根本无法执行到Read(item)。
*****************************************************************************
欢迎使用CSDN论坛阅读器 : CSDN Reader(附全部源代码)
http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
{
Read();
}
private delegate void ReadDelegate();private void Read()
{
foreach (ListViewItem item in this.lvwFiles.Items)//异常地方
{
if (item.InvokeRequest)
{
item.Invoke(new ReadDelegate(Read), new object[] {item};
}
else
{
// read here.
}
}
}
不知这样行吗?
CheckForIllegalCrossThreadCalls = false;
就行了
CheckForIllegalCrossThreadCalls = false;
就行了请问这个属性主要起什么作用?
CheckForIllegalCrossThreadCalls = false;
就行了请问这个属性主要起什么作用?
------------------------------------------
以2003的方式运行线程
vs2003要先定义delegate
用这个方法吧,保证没问题的~~
xiehuanxie才是完美的~
{
Thread th = new Thread(new ThreadStart(WorkThreadMethod));
th.Name = "TH" + i;
th.Start();
}public delegate void UpdateTextCallback(string threadName, DateTime time);private void WorkThreadMethod()
{
Thread.Sleep(10000);
txtTime.Invoke(new UpdateTextCallback(this.UpdateText), new object[]{Thread.CurrentThread.Name, DateTime.Now});
}private void UpdateText(string threadName, DateTime)
{
txtTime.Text = threadName + time.ToString();
}
欢迎大家来我的博客作客:http://blog.csdn.net/aafshzj/
我正在写一系列关于AAF组件框架的文章。该框架能对开发工作提供很多帮助,并极大地提高开发效率。希望大家看一看并提出宝贵建议。
通过多线程为基于 .NET 的应用程序实现响应迅速的用户
http://www.microsoft.com/china/MSDN/library/enterprisedevelopment/softwaredev/misMultithreading.mspx
为Windows应用创建简单的异步调用模式
http://www.microsoft.com/china/MSDN/library/architecture/AsynCallPattern.mspx
public ListViewItem getlv系统设置PhoneListItem(int index)
{
if (lv系统设置PhoneList.InvokeRequired)
{
PhoneListItemReadDelegate d = new PhoneListItemReadDelegate(getlv系统设置PhoneListItem);
return (ListViewItem)(this.Invoke(d, new object[] { index }));
}
else
{
if (index < 0)
{
return null;
}
if (index < this.lv系统设置PhoneList.Items.Count)
{
return this.lv系统设置PhoneList.Items[index];
}
else
{
return null;
}
}
}