Uso de memoria en C #

Tengo un progtwig que usa hilos en C #. ¿Hay alguna manera de saber progtwigr el uso de memoria de la aplicación? Quiero limitar el desove de los hilos para decir 10 megabytes de memoria, ¿cómo lo haría?

Si desea la memoria de todo el proceso en ejecución y no por subproceso, ¿qué le parece?

// get the current process Process currentProcess = System.Diagnostics.Process.GetCurrentProcess(); // get the physical mem usage long totalBytesOfMemoryUsed = currentProcess.WorkingSet64; 

Hay una gran cantidad de otras propiedades de memoria de proceso, además de WorkingSet64 echa un vistazo a los “relacionados con la memoria” en el siguiente enlace para el que mejor se adapte

http://msdn.microsoft.com/en-us/library/system.diagnostics.process_properties.aspx

Si bien estoy de acuerdo con los comentarios que ya recibió sobre su pregunta, el uso de System.Environment.WorkingSet podría ser una respuesta real si realmente decide seguir este curso de acción.

Estoy con Will y Steve, no hagas esto a menos que REALMENTE tengas que hacerlo. . . Eso dijo. . .

si realmente necesita hacerlo, puede utilizar las API .Net Hosting que están allí para que las aplicaciones como SQL Server puedan alojar el .NET Framework dentro de la aplicación.

Te da control sobre la gestión de memoria, etc., he leído el artículo pero nunca he usado las API, están en mi lista de tareas por la noche cuando estoy aburrido y ninguno de mis otros proyectos “divertidos” parece divertido esa semana 🙂

Espero que esto ayude.

No se mide la cantidad de subprocesos en el uso de la memoria. Por el contrario, tenga en cuenta la cantidad de “procesadores” (SMP / Multi-Cores / Hyper-Threading) para decidir cuántos subprocesos deben ejecutarse en paralelo. O use el ThreadPool , que se dimensiona automáticamente para lograr una buena relación de hilo a CPU.