2009-07-06 21 views
0

我在多线程应用程序中使用tracelistener远程登录消息,但该应用程序会造成内存溢出。跟踪监听器 - 创建内存溢出

对于测试,我创建了10,000个线程,并尝试使用TraceData函数记录消息。

.Net框架是否为每个调用TraceData的对象创建一个对象,这会导致内存溢出?

回答

4

10,000个线程:每个线程将分配一个(默认)1MB堆栈空间。因此他们需要10GB RAM,这在32位进程中是不可能的(并且可能会破坏64位上的可用RAM /页)。

跟踪没有关系。

附加信息:关于Windows上线程(和进程)限制的伟大新文章,由Mark Russinovich撰写。请注意最后一段。 “Pushing the Limits of Windows: Processes and Threads

+0

我们可以创建的最大线程数是多少? – somaraj 2009-07-06 09:27:21