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

#1 Miguel Angel Campos
13/06/2005 - 13:34 | Informe spam
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
#2 Lordrick
13/06/2005 - 16:19 | Informe spam
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
#3 RDGM
14/06/2005 - 10:05 | Informe spam
Has usado Picturebox.image.Dispose,Picturebox.image=Nothing , antes de cada
carga?
Saludos
"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
#4 Miguel Angel Campos
14/06/2005 - 10:07 | Informe spam
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
#5 Lordrick
14/06/2005 - 11:17 | Informe spam
Muchas Gracias a todos!!
Voy a probar.

También he localizado un sistema para descargar la memoria del navegador lo
qual hace que todo funcione mejor.
Private Declare Function SetProcessWorkingSetSize Lib "kernel32.dll" (ByVal
hProcess As IntPtr, ByVal dwMinimumWorkingSetSize As Int32, ByVal
dwMaximumWorkingSetSize As Int32) As Int32

Public Function SaveMemory() As Int32

Return
SetProcessWorkingSetSize(Diagnostics.Process.GetCurrentProcess.Handle, -1, -1)

End Function

Para liberar memoria se debe llamar a la función SaveMemory



Un Saludo
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida