TListView中的同步删除?

时间:2012-05-30 21:04:56

标签: delphi delphi-7

我有一个包含大量项目的列表视图。 我想删除一些同步的项目。 那可能吗? 我有大约100个线程同时访问ListView以删除它的项目。

例如:

 procedure Thread1 ; stdcall;
 var
  item : TlistItem;
 begin
  //...
  item.delete;
  //...
 end;

 procedure Thread2 ; stdcall;
 var
  item : TlistItem;
 begin
  //...
  item.delete;
  //...
 end;

 /.... and so on

线程同时被触发(它们之间可能有1ms的差异)。 然后我收到很多错误和AccessViolations。 请帮忙。谢谢:))

1 个答案:

答案 0 :(得分:3)

如果我是你,我会创建一个主应用程序线程和所有更新线程可以访问的数据结构,并且可以同步,并且只有主应用程序线程用于更新VCL控件,如果这是你需要的方式。