これは私の問題です:C#/ ASP.Netはリストを変更しています...これは問題を引き起こしますか?
私はアップロードされているすべてのファイルを格納するオブジェクトの静的なリストを持っています。
private static List<Upload> vidUploadList = new List<Upload>();
リストを維持するには、失敗したアップロードをリストから削除する必要があります。私の質問です:ユーザーがリストを変更すると、リスト内の項目のインデックスが変更されます。別のユーザーがループコマンドを使用してリストの途中にあり、リストが変更されている可能性はありますか?たとえば、リストの項目[3]が使用されていて、前のオブジェクトが削除された場合(位置を[2]に変更した場合)、コードはまだ実行されますか?
リストを使用するユーザがいればロックすることができますか?一度に1つのセッションだけがリストにアクセスしていることを確認してロックを解除しますか?モニターのクラスが私を助けてくれると聞いたことがあります。
などのように
ConcurrentCollection
を使用することを検討し、グローバルアイテム以外はウェブと混在させないでください。すべてのユーザーが同じコレクションを共有するため、これは静的ではないと思われます。 – TyCobbはい、あなたが同時にリストから読んだり書いているのであれば、物事はかなり素早く台無しになるでしょう。 ['System.Concurrent.Collections'](https://msdn.microsoft.com/en-us/library/system.collections.concurrent(v = vs.110).aspx)のコレクションを使用することもできますまだ、ウェブサーバ内のすべての状態を放棄し、データベースを使用します。 – spender
ApplicationPoolが廃棄される場合、リスト内のすべてのインフォメーションが消えてしまうことに注意してください。 – HeW