私がやろうとしているのは、複数のスレッドを持つリストボックスの最初のアイテムを取得して削除することですが、スレッドが同じアイテムを使用しないようにする必要があります。
例:スレッド1と2は両方とも1を取得し、1を削除しようとしますが、その過程で、両方のスレッドが同じ変数を使用し、removeat(0)を使用しているため、1と2の両方が削除されます。
Exのリストボックス
1
2
スレッドが間違った変数を使用/削除しないようにスレッドを管理するにはどうすればよいですか?
私がやろうとしているのは、複数のスレッドを持つリストボックスの最初のアイテムを取得して削除することですが、スレッドが同じアイテムを使用しないようにする必要があります。
例:スレッド1と2は両方とも1を取得し、1を削除しようとしますが、その過程で、両方のスレッドが同じ変数を使用し、removeat(0)を使用しているため、1と2の両方が削除されます。
1
2
スレッドが間違った変数を使用/削除しないようにスレッドを管理するにはどうすればよいですか?
リストボックスのアイテムにアクセスするときは Lock を使用します。どこでもロックするために同じオブジェクトを使用します。
http://msdn.microsoft.com/en-us/library/c5kehkcz%28v=vs.80%29.aspx
リスト内の特定のアイテムを検索して削除することができます........
foreach (string item in toRemove)
{
listbox.Remove(item);
}
また.........
それにデータソースを割り当てている場合は、主キーなどの UNIQUE 列をもう 1 つ追加し、その一意の列に基づいて LISTBOX からアイテムを削除できます。
プロセス全体で、参照(おそらくリスト?)でスレッドをロックできます
HTH