Discusión sobre el artículo "Desarrollando las interfaces gráficas a base de .Net Framework e C# (Parte 2): Elementos gráficos adicionales" - página 2

Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Se ha detectado un error muy grave de trabajo con C#-windows. Si mueves continuamente C#-window, Terminal desaparece de la pantalla después de unos segundos, y la carga de CPU-core de terminal64.ine excede el 100%. Tengo 8 núcleos, por lo que la carga completa del núcleo en TaskManager en la CPU es del 12-13%. Cuando la ventana de C# se está moviendo, es del 19%.
Qué bien. Lo he probado - realmente desaparece. O mejor dicho, no desaparece, sino que se minimiza a la bandeja, como si pulsaras el botón "minimizar".
En cuanto a la carga al 100%, yo no la veo. Quizás sea porque tú lo tienes incorporado y yo no.
La eliminación manual de GuiControllerElementsDemo a través del menú Terminal provoca la congelación durante unos segundos.
Existe tal cosa. Ocurre sólo si el formulario no se cierra manualmente antes. Todavía no sé cómo evitarlo. He intentado cerrar el formulario en Deinit() de varias maneras, pero ninguna ha funcionado. Si alguien sabe cómo hacerlo, se lo agradeceré.
Está esto. Sólo ocurre si no cierras el formulario manualmente antes. Aún no sé cómo evitarlo. He probado varias formas de apagar el formulario en Deinit(), pero ninguna ha funcionado. Si alguien sabe cómo hacerlo, se lo agradeceré.
¿por qué el manejador estándar private void Form2_FormClosing(object sender, FormClosingEventArgs e)
no quiere funcionar?
cuando estaba experimentando con dll en C#, por alguna razón todo se bloqueaba al salir porque no destruía los componentes creados fuera del propio formulario, así era:
si no destruia antes de cerrar el formulario desde MQL - se ralentizaba terriblemente o se estrellaba.
Genial. Lo he probado y sí que desaparece. O mejor dicho, no desaparece, sino que se minimiza a la bandeja, como si se hubiera pulsado el botón "minimizar".
He probado a mover la propia ventana del Terminal (C# no se está ejecutando). En unos 10 segundos se minimizaron absolutamente todas las ventanas (ME, navegadores, etc.), dejando el escritorio desnudo.
En cuanto a la carga al 100%, yo no lo veo. Quizás sea realmente porque tú lo tienes incorporado y yo no.
Al mismo tiempo he monitorizado la ejecución del Asesor Experto. Aquí está el resultado
Se puede ver claramente que el Asesor Experto detuvo su trabajo mientras la ventana del Terminal se movía.
Al mismo tiempo supervisé la ejecución del Asesor Experto. He aquí el resultado
Se puede ver claramente que el Asesor Experto detuvo su trabajo, mientras que la ventana de Terminal se movía.
Hice una comprobación a través del temporizador - no veo ningún cuelgue. Envía todo al registro muy rápidamente.
y por qué el manejador estándar private void Form2_FormClosing(object sender, FormClosingEventArgs e)
no quiere funcionar?
cuando estaba experimentando con dll an C#, por alguna razón todo se bloqueaba al salir porque no destruía los componentes creados fuera del propio formulario, así era:
Si no destruía antes de cerrar el formulario desde MQL, se ralentizaba terriblemente o se estrellaba.
Intenté hacerlo mediante el form.Dispose() estándar. Es decir, cuando se llama a GuiController::HideForm(), se llama a Dispose del formulario correspondiente. Todo funcionaba bien en la aplicación de prueba en C#. Pero no funciona en MT. Pero si cerramos el formulario manualmente antes de borrar el Asesor Experto, todo funciona bien.
He intentado hacerlo a través del form.Dispose() estándar. Es decir, cuando se llama a GuiController::HideForm(), se llama a Dispose del formulario correspondiente. Todo funcionó bien en la aplicación de prueba en C#. Pero no funciona en MT. Pero si cerramos el formulario manualmente antes de borrar el Asesor Experto, todo funciona bien.
Aquí se descarga instantáneamente.
Se descarga instantáneamenteaquí.
Sí, he visto tu panel. ¿Qué función utiliza para descargar?
He intentado hacerlo a través del form.Dispose() estándar. Es decir, cuando se llama a GuiController::HideForm(), se llama a Dispose del formulario correspondiente. Todo funcionó bien en la aplicación de prueba en C#. Pero no funciona en MT. Pero si cerramos el formulario manualmente antes de borrar el Asesor Experto, todo funciona bien.
Definitivamente deberías buscarlo en Google, algún proceso está dando vueltas.
Alternativamente, usted todavía necesita llamar Form.Close() para Windows para cerrar la aplicación.
https://stackoverflow.com/questions/3097364/c-sharp-form-close-vs-form-dispose
No llamar a Close probablemente evita enviar un montón de mensajes Win32 que uno pensaría que son algo importantes aunque no podría decirte específicamente por qué...
Close tiene la ventaja de lanzar eventos (que pueden ser cancelados) de tal forma que una persona ajena (al formulario) podría estar atenta a FormClosing y FormClosed para reaccionar en consecuencia.
No tengo claro si FormClosing y/o FormClosed se activan si simplemente eliminas el formulario, pero te dejo que experimentes con ello.
Sí, he visto tu panel. ¿Qué función utilizas para descargar?
Sí, he visto tu panel. ¿Qué función usas para descargar?
Es el panel de Igor. Acabo de publicarlo.