0

私がやろうとしているのは、複数のスレッドを持つリストボックスの最初のアイテムを取得して削除することですが、スレッドが同じアイテムを使用しないようにする必要があります。

例:スレッド1と2は両方とも1を取得し、1を削除しようとしますが、その過程で、両方のスレッドが同じ変数を使用し、removeat(0)を使用しているため、1と2の両方が削除されます。

Exのリストボックス

1

2

スレッドが間違った変数を使用/削除しないようにスレッドを管理するにはどうすればよいですか?

4

3 に答える 3

0

リストボックスのアイテムにアクセスするときは Lock を使用します。どこでもロックするために同じオブジェクトを使用します。

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

于 2013-02-22T04:42:18.263 に答える
0

リスト内の特定のアイテムを検索して削除することができます........

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

また.........

それにデータソースを割り当てている場合は、主キーなどの UNIQUE 列をもう 1 つ追加し、その一意の列に基づいて LISTBOX からアイテムを削除できます。

于 2013-02-22T04:30:56.663 に答える
0

プロセス全体で、参照(おそらくリスト?)でスレッドをロックできます

  1. アイテムを見つける
  2. アイテムが見つかった場合は削除する

HTH

于 2013-02-22T04:37:53.813 に答える