我要做的是获取并删除具有多个线程的列表框中的第一项,尽管我需要防止线程使用相同的项目。
例如:线程 1 和 2 都抓取 1,并尝试删除 1,但在此过程中,两个线程都使用相同的变量,并且 1 和 2 都被删除,因为我使用的是 removeat(0)。
Ex 列表框
1
2
我将如何管理线程以使它们不使用/删除错误的变量?
我要做的是获取并删除具有多个线程的列表框中的第一项,尽管我需要防止线程使用相同的项目。
例如:线程 1 和 2 都抓取 1,并尝试删除 1,但在此过程中,两个线程都使用相同的变量,并且 1 和 2 都被删除,因为我使用的是 removeat(0)。
1
2
我将如何管理线程以使它们不使用/删除错误的变量?
您可以搜索列表中的特定项目并将其删除......
foreach (string item in toRemove)
{
listbox.Remove(item);
}
或者.........
如果要为其分配数据源,则再添加一个 UNIQUE 列,例如主键,并基于该唯一列,您可以从 LISTBOX 中删除项目
您可以将线程锁定在引用(也许是列表?)的整个过程中
高温高压
访问列表框项目时使用锁定。使用相同的对象在任何地方进行锁定。
http://msdn.microsoft.com/en-us/library/c5kehkcz%28v=vs.80%29.aspx