multithreading asynchronous
Publicado por Luis David (4 intervenciones) el 11/10/2016 23:30:21
Buenas tardes,
estoy desarrollando una aplicación en la que necesito extraer datos de una base de datos (db) e ir creando un pdf con cada registro que obtenga de la db, el problema es que son mas de 6.000 registros y necesito que realizar esa acción en menos de una hora.
alguien sabe la forma de de realizar un multihilos asincronico que me ayude con esto?
Aca dejo el segmento de cogido que tengo actualmente
donde CrearPDF es un metodo asincronico.
El error en el codigo se presenta con las peticiones a la db me dice que la coneccion esta cerrada y que hay un Datareader abierto
yo abro la coneccion en el load y el metodo que ejecuta una consulta con el Datareader lo cierra al terminar la consulta
agradezco toda la ayuda que me puedan brindar
estoy desarrollando una aplicación en la que necesito extraer datos de una base de datos (db) e ir creando un pdf con cada registro que obtenga de la db, el problema es que son mas de 6.000 registros y necesito que realizar esa acción en menos de una hora.
alguien sabe la forma de de realizar un multihilos asincronico que me ayude con esto?
Aca dejo el segmento de cogido que tengo actualmente
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
List<Task> tasks = new List<Task>();
private void timer_Tick(object sender, EventArgs e)
{
if (iContador < 200)
{
Console.WriteLine("------------------------------------- : " + iContador.ToString());
codigoNuevo.ControllerContenido controller = new codigoNuevo.ControllerContenido();
List<codigoNuevo.contenido> resultadoCompleto = controller.getCodigo("EXEC [dbo].[SP_OBT__EMAILS_MASIVOS_BONIFICACIONES] {0}, {1}, {2}", conn);
foreach (var valores in resultadoCompleto)
{
tasks.Add(Task.Run(() => CrearPDF(valores.codigo, valores.to, valores.pass)));
}
}
else
{
this.timer.Stop();
this.timer.Enabled = false;
MessageBox.Show("SIN PROBLEMAS");
}
iContador++;
}
donde CrearPDF es un metodo asincronico.
El error en el codigo se presenta con las peticiones a la db me dice que la coneccion esta cerrada y que hay un Datareader abierto
yo abro la coneccion en el load y el metodo que ejecuta una consulta con el Datareader lo cierra al terminar la consulta
agradezco toda la ayuda que me puedan brindar
Valora esta pregunta


0