elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Concurrencia sobre dll externa
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Concurrencia sobre dll externa  (Leído 5,083 veces)
Lopardo

Desconectado Desconectado

Mensajes: 119


Solo es el principio...


Ver Perfil WWW
Concurrencia sobre dll externa
« en: 22 Febrero 2011, 05:33 am »

Hola a todos,

Les explico lo que quiero hacer, estoy tratando de modificar el comportamiento de una aplicación para que ésta realice sus funciones de forma concurrente. Esta aplicación sirve para programar soluciones híbridas donde se combina la programación web con la programación de aplicaciones de escritorio, es como una especie de navegador web, que permite que programen sus funciones básicas.

Les explico un poco su funcionamiento para que puedan ayudarme en lo que quiero hacer. Esta aplicación esta compuesta de un WebBrowser en el cual se muestra la solución que se desarrolle, su comportamiento es similar al de un sitio web, hasta el momento que esta se comunica con código de vb.net, c#, etc. por ejemplo, si se presiona en un botón y éste llama a una función desarrollada en vb.net, no se puede presionar en otro enlace de la web porque el hilo principal esta ocupado, entonces, para evitar esto lo que hice fue que al pisar en algún botón, se crea un nuevo hilo para que este se encargue de realizar la tarea, todo funciona muy bien, sin embargo, cuando empleo las funciones que trae la aplicación para crear gráficas, me permite hacerlo varias veces y después no funciona correctamente. Lo que he pensado es que tal vez los controles empleados para crear las gráficas fueron inicializados por el hilo principal y cuando se intentan utilizar por otros hilos da problema, lo extraño es que funciona 100% si se ejecuta con el hilo principal de la aplicación, cosa que no quiero hacer porque la creación de estas gráficas dura cierto tiempo y todo quedaría en espera que se libere el hilo.

No se si exista alguna manera para ejecutar funciones almacenadas en dll y que ésta piense de alguna manera que el hilo que la este ejecutando fue el mismo que la inicializó.  O dividir el hilo principal en sub procesos para que realicen tareas diversas concurrentemente.

Bueno cualquier idea es bienvenida, gracias por su ayuda.


En línea

...de la sabiduría.
raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Concurrencia sobre dll externa
« Respuesta #1 en: 22 Febrero 2011, 13:49 pm »

Estas hablando de que el programa usa funciones hechas en vb.net, C# e hilos... no es comun encontrar esto en vb.

El programa esta hecho en .net (sea vb.net, C#, etc)? Entonces este hilo va Suboro de .net

Si fuera el caso, los hilos, como los creas y les pasas los valores? Yo usaria un BackGroundWorker o crearia un AsynCallback para que cree un thread automaticamente y lo termine.


En línea

Lopardo

Desconectado Desconectado

Mensajes: 119


Solo es el principio...


Ver Perfil WWW
Re: Concurrencia sobre dll externa
« Respuesta #2 en: 27 Febrero 2011, 07:09 am »

Es correcto, el programa permite programar funciones en cualquiera de los lenguajes de .net.

Este está programado en .net, los hilos los he creado de varias formas, usando BackGroundWorker, creando unas instancia de Thread, incluso usando timer, el problema de este último es que sería el mismo hilo principal y por lo tanto si se ocupa en cualquiera de los timer se tendría que esperar que finalice, y es exactamente lo que no quiero que ocurra.

Lo que creo que solucionaría mi el asunto es que el hilo principal sea el que ejecute ciertas funciones que están en las dll y no sea otro hilo. Por eso pregunto si existirá alguna forma de hacer que el hilo principal realice varios procesos al mismo tiempo, simulando la concurrencia, o que un nuevo hilo simule al hilo principal, permitiendo de esta manera hacer uso de los controles creados cuando se inicializaron los objetos de las dll.

Cualquier comentario es útil. gracias por su ayuda.
En línea

...de la sabiduría.
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Concurrencia sobre dll externa
« Respuesta #3 en: 27 Febrero 2011, 10:16 am »

.
¡Si es el error que pienso que es, entonces usa Delagados para escalar entre hilos y asi acceder a las referencias de los controles... ya que es un problema comun querer acceder de un proceso en un hilo a otro para acceder a un objeto X.!

Dulces Lunas!¡.
« Última modificación: 27 Febrero 2011, 10:23 am por BlackZeroX▓▓▒▒░░ » En línea

The Dark Shadow is my passion.
[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
Re: Concurrencia sobre dll externa
« Respuesta #4 en: 27 Febrero 2011, 15:50 pm »

Si tienes subprocesos y quieren modificar algo del UI , no podrás hacerlo directamente. Sino que como dijo BlackZeroX, tienes que usar delegados, los cuales tienes que pasárselos al un método Invoke del formulario, o implementar tú mismo algo parecido.

Un saludo!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Concurrencia y bloqueos en aplicaciones
Bases de Datos
Hadess_inf 0 2,286 Último mensaje 2 Octubre 2013, 03:55 am
por Hadess_inf
Concurrencia en java
Java
josevc 2 2,444 Último mensaje 4 Enero 2016, 13:52 pm
por josevc
Cuestión de hilos/concurrencia
Java
kur79 3 2,392 Último mensaje 2 Febrero 2016, 10:18 am
por MNicolas
Problema de los átomos - Concurrencia
Programación General
amgarciac 1 2,190 Último mensaje 10 Marzo 2016, 21:26 pm
por Lekim
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines