Linq-to-SQL DataContext a través de múltiples hilos

¿Cómo manejo un Linq-to_SQL DataContext en múltiples hilos?

¿Debería crear un DataContext estático global que todos los subprocesos utilicen y confirmen cambios al final o debo crear un Contexto por subproceso y usar esa instancia para todo dentro de ese subproceso?

DataContext no es seguro para subprocesos; usarlo directamente desde múltiples hilos causaría #fail; tener un contexto de datos estático global causaría #fail y causaría un crecimiento incontrolado de la memoria (el contexto de datos incluye un administrador de identidades y un rastreador de cambios para cada objeto buscado; esto solo crece con el tiempo, a medida que se tocan más objetos)

El contexto de datos debería usarse idealmente para una unidad de trabajo; girar uno para arriba haga algo (que esté limitado en su scope, es decir, no toda la vida útil de la aplicación), y deséchelo. Entonces, la respuesta real aquí es “atarlo a esa unidad de trabajo”. Solo tú puedes saber qué es eso en tu aplicación; podría ser un método único, podría ser una solicitud de página en una página web, podría ser un temporizador “tick” en un servicio. Quién sabe…