Hola a todos.

Soy nuevo en c# y en programación con Threads.

Estoy usando c# (Vs 2005) para realizar un pequeña aplicacion. Utilizo una clase para comunicaciones Modbus serie que funciona correctamente. Tengo varias funciones implementadas que llamo sin problemas desde el proceso principal de la aplicación.

Por necesidades de la aplicación he tenido que introducir un subproceso. En principio tuve que hacer un CheckForIllegalCrossThreadCalls = false; desde mi programa principal para poder modificar los valores de los controles de mi formulario principal.

La cosa pintaba bien, hasta que realizo una llamada a cualquiera de las funciones de la clase que implementa modbus. Si incluyo cualquier llamada (aunque sea abrir o cerrar el puerto serie) el programa no llega a mostrar el formulario principal y en la ventana output comienza a llenarse del mensaje de error:

A first chance exception of type 'System.IO.IOException' occurred in System.dll

He intentado capturar el error con un bloque try/catch pero se lo salta. Si comento la línea de la llamada el programa funciona correctamente.

Supongo que hay que hacer algo "diferente" para acceder a los metodos de la clase desde el subproceso.

¿Alguien sabe por donde van los tiros?

saludso