delphi多线程操作同一个listview,怎么办?
我有两个线程同时处理界面中的一个ListView
线程1:
我自己建立的线程类 对象 mythreadObj:
Execute()方法是一个死循环,循环内部有个这样的语句处理ListView
aListItem:=form1.ListView1.Items[i];
Synchronize(SetlistItemicon); //方法setlistitemicon 是设置所选的项的图标
。。。。。。。
。。。。。
end;
线程2中,我用一个timer定时器:
每隔一段时间,就刷新整个Listview中的列表。
就是每隔一段时间,就从一个数组中取出数据,根据数据生成listview中的item
listview1.clear;
根据数组内容,添加Item
我运行程序的时候,有时会出现异常,
应该是 两个线程间 同时操作Listview,所以出现异常
怎么处理呀。希望大虾给个 思路和帮我上面的加段代码
没做过多线程的,帮帮忙,急 急 急
为什么要在线程中操作VCL啊。
//线程单元内
uses SyncObjs;
//定义一个全局变量
var
CS: TCriticalSection;
在操作LV之前调用:
CS.Enter;
操作完成后:
CS.Leave;
initialization
CS := TCriticalSection.Create;
finalization
CS.Free;
线程中操作VCL很正常,比如多线程下载列表就有可能会用到
使用同步方法调用函数,这个函数调用会在主线程中调用,不会产生楼主所说的“应该是 两个线程间 同时操作Listview
相关问答:
Delphi 像亡国的南宋,试问这语言还有前途吗?
Win32开发不如C#;
面像对像开发不如JAVA;
系统开发不如VC++6.0;
能用性不如VB6.0;
不支持Web开发。。。
出个Delphi 2010免费一年会有人用吗?
......
由于客戶端有的文件經常更新(遠程的,不是局域網),
所以想寫個自動更新的 程序。
看網上的 方法資料,知道些方法,但不知道具體怎么寫。
......
我先用idhttp 的get方法访问一个网站,网站返回了一段cookie,当我 调用 idhttp post方法的时候,我如何把服务器返回的这段cookies带上 ,先谢谢各位了
读取 HTTP Response Header
里面有 Set-Cookies 域 ......
我的代码如下,怎么总提示连不成功:
type
GUID = record //申明调用RAS(创建VPN连接用)函数所需结构体
Data1: integer;
Data2: Shortint;
Data3: Shortint;
......
用DEDE打开一个DLL,找到需要的函数了,但是显示的都是汇编代码,看不懂,恳请高手驻足帮忙啊!
是一个KEYPRESS响应函数,功能是在按下enter后判断输入的字符,我想按照自己的需求跳转,但是
找不到位置,高手 ......