Home
Support
Demora Inesperada de la Ejecución Usando la Plataforma de Ejecución de TestStand 2.x y la Interfase de Operador creada en .NET
Demora Inesperada de la Ejecución Usando la Plataforma de Ejecución de TestStand 2.x y la Interfase de Operador creada en .NET
Software Primario:
Versión de Software Primario: 2.0
Versión de Software Primario Corregido: N/A
Software Secundario: N/A
Problema: Estoy tratando de usar TestStand 2.x para crear mi interfase de operador en .NET. Mi aplicación siempre se traba en funciones que manejan mensajes de la interfase de usuario (UIMessage Handler). ¿Por qué esta sucediendo esto y como puedo prevenirlo?
Solución: Algunos de los mensajes de la interfase de usuario (UIMessage) son de carácter sincrónico. Esto significa que la ejecución no puede continuar hasta que hayan sido procesados. Debido a esta situación, .NET no suelta la referencia a un UIMessage que es sincrónico y la aplicación no puede continuar hasta que .NET pueda desechar esta referencia. Este comportamiento hace parecer que la ejecución del programa se traba y no avanza.
La solución a este comportamiento es invocar explícitamente el método
System.Runtime.Interopservices.Marshal.ReleaseComObject para soltar la referencia al objeto de tipo UIMessage. Esta llamada debe ser realizada desde la función que procesa el mensaje de la interfase de usuario, el código será algo similar al siguiente ejemplo:
private void axEngine1_UIMessageEvent(object sender, AxTS._TEEngineEvents_UIMessageEventEvent e)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(e.msg);
}
Ligas Relacionadas:
Archivos Adjuntos:
Día del Reporte: 05/14/2004
Última Actualización: 05/17/2004
Identificación del Documento: 336BNJO6
Other Support Options
Ask the NI Community
Collaborate with other users in our discussion forums
Request Support from an Engineer
A valid service agreement may be required, and support options vary by country.