0

我要做的是获取并删除具有多个线程的列表框中的第一项,尽管我需要防止线程使用相同的项目。

例如:线程 1 和 2 都抓取 1,并尝试删除 1,但在此过程中,两个线程都使用相同的变量,并且 1 和 2 都被删除,因为我使用的是 removeat(0)。

Ex 列表框

1

2

我将如何管理线程以使它们不使用/删除错误的变量?

4

3 回答 3

0

您可以搜索列表中的特定项目并将其删除......

 foreach (string item in toRemove)
 {
   listbox.Remove(item);
 }

或者.........

如果要为其分配数据源,则再添加一个 UNIQUE 列,例如主键,并基于该唯一列,您可以从 LISTBOX 中删除项目

于 2013-02-22T04:30:56.663 回答
0

您可以将线程锁定在引用(也许是列表?)的整个过程中

  1. 查找项目
  2. 如果找到,则删除该项目

高温高压

于 2013-02-22T04:37:53.813 回答
0

访问列表框项目时使用锁定。使用相同的对象在任何地方进行锁定。

http://msdn.microsoft.com/en-us/library/c5kehkcz%28v=vs.80%29.aspx

于 2013-02-22T04:42:18.263 回答