0

我有一个非常简单的应用程序,我们向它提供我们网站的列表,它对它们执行并行 foreach,并且在每个操作中它都会向它发送一个 http post。

类似于下面:

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:22:58.797 回答
0

用马克·格拉维尔的话来说

如果您通过处理此异常来“修复”您的代码,那么您就是在埋头苦干。

于 2011-09-08T13:21:07.950 回答