例外の原因が知りたい。会社のブログログイン登録スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。例外の原因が知りたい。String(file[i])で以下の例外が発生してしまいます。range.という例外が出る理由がわかりません。セマフォを使って三つにスレッドを制限しています。同じパスのものがRun()関数の中を通ったりと全体に的に挙動がおかしいのですが原因がわかりません。collection.試したこと、確認したことfile.Countで5個のファイルパスがあります。fileリスト変数の中身を確認して中のパスを確認しました、同じもはないです。for文も回っていますがなぜか5ループ目が実行されています。fileの変数の中身を数を確認しまししたが問題はありませんでした。セマフォを使った非同期処理を行っています。stringは参照型なのでnewしてみまいしたが同じ挙動でした。String(file[i]))));}こちらですが、ラムダ式の中で、外側の変数iを参照しています。ラムダ式は構築された際の変数iの値が記憶されるのではなく、ラムダ式が実行された際に改めて変数iの値を読みます。forループは早々に進めるため、iはきっとfile.Countに到達しforループを抜け出ていることでしょう。相当であり、ArgumentOutOfRangeExceptionが発生するのも当然と言えます。Run(f));とか。参照してはいけません。動作したときに、別の値に置き換わっていることがあります。Run(s)));}これで良いと思います。個の銅バッジ2ありがとうございます。8:57他に言いようがないです。解決しているからです。|この質問に回答するには、ログインする必要があります。求めていた回答ではありませんか?c#winformsのタグが付いた他の質問を参照する。存在しませんとなる0System.Random関数で同じ数字が続けて出てしまう場合があるのはなぜ?0非同期処理と並列処理の使い分けが知りたい。SemaphoreSlim.Wait()使い方が知りたい。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。従って情報を開示できることに同意したことになります。選択した項目のみ受け入れる。