DLL Cargar imagen en picture box problemas de rendimiento y Refresco pantalla, Ayuda urgente!

13/06/2005 - 12:05 por Lordrick | Informe spam
Hola,

Estoy implementando una dll para cargar desde una página web, que contenga
un picturebox para visualizar imágenes que tengo en un directorio. Mediante
un timer las presento a una velocidad de 5 imagenes por segundo para simular
la reproducción de un video.

Mi problema es que, todo y a pesar de que las imágenes se visualizan
perfectamente, el visor consume tantos recursos de la cpu o captura tanto
tiempo, que no es capaz de pintar los otros objetos de la dll, e incluso me
encuentro con que no puedo cerrar ni el navegador.

He probado de poner un doevent, pero el tema sigue igual.


Alguien me puede dar alguna sugerencia?
Estoy en un punto crítico del proyecto.
Heeelp!

Gracias de antemano.

1 Saludo,
Lord Rick

Preguntas similare

Leer las respuestas

#6 Lordrick
14/06/2005 - 11:38 | Informe spam
Puedes explicarme un poco mejor lo del ThreadPool????
Gracias de antemano.

"Miguel Angel Campos" <SPAMmacampos ARRUBA .idesarrollaSPAM.com> escribió en
el mensaje news:
Utiliza el ThreadPool de .NET.
Actualmente seguro que en el código del evento del timer capturas la
imagen del servidor y la muestras, si en lugar de eso lanzas lo mismo que
una llamada asincrona, a traves del ThreadPool, y es en otro Thread donde
obtiene la imagen del servidor, y cuando la tienes la muestras en el
picturebox.

Debes utilizar la función ThreadPool.QueueUserWorkItem, para que se
ejecuta la llamada al servidor y capture la nueva imagen.
Posteriormente el método BeginInvoke del control PictureBox.

Un Saludo,

Miguel Angel Campos
MCAD.NET

"Lordrick" escribió en el mensaje
news:%23TDf%
Exacto es un control windows, estoy accediendo a una imagen que esta en
recurso http a traves de un servicio soap, y en realidad los 5 frames por
segundo los accepta perfectamente, incluso acepta mas. Por que el tamaño
de las imagenes son jpg de 14kb.
Lo que passa es que como para ir a buscar la imagen realizo un timer el
objeto de picture box coje todo el tiempo de cpu con lo que no consigo ni
siquiera parar el timer.

El código no lo posteo, por que es una chorrada, no es más que un timer
realizando la actualización del picturebox.




"Miguel Angel Campos" <SPAMmacampos ARRUBA .idesarrollaSPAM.com> escribió
en el mensaje news:
Creo haber entendido que es un control Windows para ser utilizado en una
aplicación Web.
La pregunta es desde donde estás leyendo las imagenes, por que si es
desde el servidor web es lógico que a una velocidad de 5 frames por
segundo no se pueda ver de forma correcta, no da tiempo a bajarse las
imagenes.

Podrías poner algo del código que estas utilizado?

Un Saludo,

Miguel Angel Campos
MCAD.NET

"Lordrick" escribió en el mensaje
news:eHJqB9$
Hola,

Estoy implementando una dll para cargar desde una página web, que
contenga un picturebox para visualizar imágenes que tengo en un
directorio. Mediante un timer las presento a una velocidad de 5
imagenes por segundo para simular la reproducción de un video.

Mi problema es que, todo y a pesar de que las imágenes se visualizan
perfectamente, el visor consume tantos recursos de la cpu o captura
tanto tiempo, que no es capaz de pintar los otros objetos de la dll, e
incluso me encuentro con que no puedo cerrar ni el navegador.

He probado de poner un doevent, pero el tema sigue igual.


Alguien me puede dar alguna sugerencia?
Estoy en un punto crítico del proyecto.
Heeelp!

Gracias de antemano.

1 Saludo,
Lord Rick














Respuesta Responder a este mensaje
#7 Miguel Angel Campos
14/06/2005 - 17:01 | Informe spam
Mira este artículo, explica muy bien como usar el ThreadPool:
http://www.microsoft.com/spanish/ms...macion.asp

Un Saludo,

Miguel Angel Campos
MCAD.NET

"Lordrick" escribió en el mensaje
news:OW3$
Puedes explicarme un poco mejor lo del ThreadPool????
Gracias de antemano.

"Miguel Angel Campos" <SPAMmacampos ARRUBA .idesarrollaSPAM.com> escribió
en el mensaje news:
Utiliza el ThreadPool de .NET.
Actualmente seguro que en el código del evento del timer capturas la
imagen del servidor y la muestras, si en lugar de eso lanzas lo mismo que
una llamada asincrona, a traves del ThreadPool, y es en otro Thread donde
obtiene la imagen del servidor, y cuando la tienes la muestras en el
picturebox.

Debes utilizar la función ThreadPool.QueueUserWorkItem, para que se
ejecuta la llamada al servidor y capture la nueva imagen.
Posteriormente el método BeginInvoke del control PictureBox.

Un Saludo,

Miguel Angel Campos
MCAD.NET

"Lordrick" escribió en el mensaje
news:%23TDf%
Exacto es un control windows, estoy accediendo a una imagen que esta en
recurso http a traves de un servicio soap, y en realidad los 5 frames
por segundo los accepta perfectamente, incluso acepta mas. Por que el
tamaño de las imagenes son jpg de 14kb.
Lo que passa es que como para ir a buscar la imagen realizo un timer el
objeto de picture box coje todo el tiempo de cpu con lo que no consigo
ni siquiera parar el timer.

El código no lo posteo, por que es una chorrada, no es más que un timer
realizando la actualización del picturebox.




"Miguel Angel Campos" <SPAMmacampos ARRUBA .idesarrollaSPAM.com>
escribió en el mensaje news:
Creo haber entendido que es un control Windows para ser utilizado en
una aplicación Web.
La pregunta es desde donde estás leyendo las imagenes, por que si es
desde el servidor web es lógico que a una velocidad de 5 frames por
segundo no se pueda ver de forma correcta, no da tiempo a bajarse las
imagenes.

Podrías poner algo del código que estas utilizado?

Un Saludo,

Miguel Angel Campos
MCAD.NET

"Lordrick" escribió en el mensaje
news:eHJqB9$
Hola,

Estoy implementando una dll para cargar desde una página web, que
contenga un picturebox para visualizar imágenes que tengo en un
directorio. Mediante un timer las presento a una velocidad de 5
imagenes por segundo para simular la reproducción de un video.

Mi problema es que, todo y a pesar de que las imágenes se visualizan
perfectamente, el visor consume tantos recursos de la cpu o captura
tanto tiempo, que no es capaz de pintar los otros objetos de la dll, e
incluso me encuentro con que no puedo cerrar ni el navegador.

He probado de poner un doevent, pero el tema sigue igual.


Alguien me puede dar alguna sugerencia?
Estoy en un punto crítico del proyecto.
Heeelp!

Gracias de antemano.

1 Saludo,
Lord Rick


















Respuesta Responder a este mensaje
#8 Tristan
14/06/2005 - 19:05 | Informe spam
Lo que no comprendo Lordrick es por que te tarda tanbto en actualizar una
foto pequeña. Aunque el código sea una chorrada, creo que sería bueno verlo.

Juan Carlos Badiola
MVP - C#
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida