varios tiempo termino segundo saber plano parametros mismo metodos hilos ejecutar con como c# database multithreading ado.net

tiempo - hilos en segundo plano c#



Aplicación de Windows C#- ¿Muchos hilos usando la misma conexión? (3)

Tengo una aplicación de CA # WINDOWS que tiene varios subprocesos. Tengo entendido que en un entorno web, las conexiones se agrupan automáticamente. También entiendo que en una aplicación de Windows, este no es el caso. Por lo tanto, para una aplicación de Windows, la misma conexión se debe usar y no cerrar después de cada llamada, pero se cierra cuando la aplicación se apaga.

Aunque tengo curiosidad, ¿es correcto? Si es así, ¿pueden dos subprocesos usar la misma conexión para obtener un conjunto de datos de la base de datos al mismo tiempo o esa cola está en cola?

Gracias


Entiendo que en un entorno web, las conexiones se agrupan automáticamente. También entiendo que en una aplicación de Windows, este no es el caso.

No, esto está mal, como señaló m3rLinEz. Las conexiones siempre se agrupan.

Por lo tanto, para una aplicación de Windows, la misma conexión se debe usar y no cerrar después de cada llamada, pero se cierra cuando la aplicación se apaga.

Puede mantener una conexión abierta durante la aplicación en una aplicación WinForms monolítica. Pero es mejor utilizar el patrón estándar de conexiones de apertura / cierre cuando lo necesite. La agrupación de conexiones significa que no notará una diferencia de rendimiento. Y su código de acceso a datos será compatible con aplicaciones de servidor como ASP.NET.

Si es así, ¿pueden dos subprocesos usar la misma conexión para obtener un conjunto de datos de la base de datos al mismo tiempo o esa cola está en cola?

No. Las clases de ADO.NET (conexión, comando, etc.) no son seguras para subprocesos y no deben compartirse entre subprocesos sin sincronización. Pero como se señaló anteriormente, debe preferir el patrón estándar para el acceso a los datos.



ok, así que esta suposición fue provocada por la observación: cuando probé una configuración de la aplicación win en la forma típica de pool, siempre experimento un retraso de 3-5 segundos mientras se establece una conexión real con el servidor remoto. Incluso cuando hice un abierto, luego un cierre, la próxima consulta siempre tendría este retraso.

Cuando el servidor se conecta, obviamente no establece una conexión para cada conexión en el grupo. Además, ¿el mecanismo de puesta en común es lo suficientemente inteligente como para tomar una conexión que sabe que ya está abierta o es posible simplemente tomar una conexión aleatoria?

¿Cuál es la conexión máxima predeterminada en el grupo?