0

私は非常に単純なアプリケーションを持っており、それにWebサイトのリストをフィードし、それらに対して並列foreachを実行し、各アクション内でhttp投稿を実行します。

以下のように:

static int success = 0
static void Main(string[] args) {
    try {
        Parallel.ForEach(sites, site=> {
            try{
                if(DoWebPost(site)) {
                    Console.Write("Posted {0} - {1}", ++success, site);
                }
            } catch {}
        });
    } catch {}
}

なぜOutOfMemoryExceptionがスローされるのか、ましてやアプリケーション全体がクラッシュする理由は言うまでもなく、キャッチして続行するだけではありません。

編集:例外が発生する場所は正確にはわかりません。ローカルでは発生しないため、本番環境で実行している場合にのみ発生します...つまり、デバッグは利用できません。アプリケーションは64ビットであり、100メガバイトを超えることはめったにありません。

4

2 に答える 2

0

マーク・グラベルの言葉で

この例外を処理してコードを「修正」すると、頭が砂の中に埋もれてしまいます。

于 2011-09-08T13:21:07.950 に答える
0

投稿されたコードは、使用したコードと多少同じであると述べました。実際に完全なコードまたはこれを引き起こしている正確なコードを投稿できますか。なんらかのメモリ リークが発生しているようです。まずこれに対処する必要があります。

于 2011-09-08T13:22:58.797 に答える