I am new to C#, and I tried to look at the earlier posts but did not find a good answer. In a C# Windows Form Application with a single form, is using better or ? MSDN says that all resources within the object are closed and the form is disposed when...
已检测到使用 C# 窗口工作时的一个非常严重的错误。如果连续移动 C# 窗口,终端会在几秒钟后从屏幕上消失,terminal64.exe 的 CPU 核心负载超过 100%。我有 8 个内核,因此任务管理器中 CPU 的全内核负载为 12%-13%。当 C# 窗口移动时,则为 19%。
哦,真酷。试了一下,真的消失了。或者说,它并没有消失,而是最小化到了托盘,就像你按了 "最小化 "按钮一样。
至于 100% 加载,我没看到。也许是因为你内置了而我没有。
通过终端菜单手动删除GuiControllerElementsDemo 会导致程序冻结几秒钟。
确实有这种情况。只有在没有事先手动关闭表单的情况下才会发生。我还不知道如何解决这个问题。我试过用几种方法在 Deinit() 中关闭表单,但都没有成功。如果有人知道怎么做,我将不胜感激。
是这样的。只有当你没有事先手动关闭表单时,才会出现这种情况。我还不知道如何解决这个问题。我尝试了几种在 Deinit() 中关闭表单的方法,但都不奏效。如果有人知道怎么做,我将不胜感激。
为什么标准处理程序 private void Form2_FormClosing(object sender, FormClosingEventArgs e)
不工作?
当我用 C# 进行 dll 实验时,由于某种原因,在退出时一切都崩溃了,因为我没有销毁在表单本身之外创建的组件,事情就是这样:
就是这样:如果我没有在从 MQL 关闭窗体之前销毁组件,运行速度就会非常慢或崩溃。
哦,酷。我试了一下,它确实消失了。或者说,它没有消失,而是最小化到了托盘,就像按了 "最小化 "按钮一样。
我试着移动终端窗口(C# 没有运行)。大约 10 秒钟后,所有窗口(ME、浏览器等)都最小化了,只剩下桌面。
至于 100% 加载 - 我没看到。也许真的是因为你内置了加载功能,而我没有。
同时,我监控了智能交易系统的执行情况。结果如下
您可以清楚地看到,当终端窗口移动时,智能交易系统停止了工作。
同时,我还监控了智能交易系统的执行情况。结果如下
可以清楚地看到,当终端窗口移动时,EA 停止了工作。
我通过计时器进行了检查,没有发现任何挂起。它很快就将所有内容都发送到了日志中。
以及为什么要使用标准处理程序 private void Form2_FormClosing(object sender, FormClosingEventArgs e)
不工作?
当我用 C# 进行 dll 实验时,由于某些原因,在退出时一切都崩溃了,因为我没有销毁在表单本身之外创建的组件,事情就是这样:
就是这样:如果我在关闭 MQL 表单之前没有销毁组件,表单的运行速度就会非常慢,甚至会崩溃。
我试图通过标准的 form.Dispose() 来实现。也就是说,当调用 GuiController::HideForm() 时,会调用相应表单的 Dispose。 在 C# 的测试程序中一切正常。但在 MT 中却行不通。但如果我们在删除智能交易系统之前手动关闭表单,则一切正常。
我尝试通过标准的 form.Dispose() 来实现。也就是说,当调用 GuiController::HideForm() 时,会调用相应表单的 Dispose。 在 C# 的测试程序中一切正常。但在 MT 中却行不通。但如果我们在删除智能交易系统之前手动关闭表单,一切都会正常。
在这里,它被立即卸载。
在这里 可以立即卸载。
是的,我看过你的面板。你用什么函数卸载?
我尝试通过标准的 form.Dispose() 来实现。也就是说,当调用 GuiController::HideForm() 时,会调用相应表单的 Dispose。 在 C# 的测试程序中一切正常。但在 MT 中却行不通。但如果我们在删除智能交易系统之前手动关闭表单,一切都会正常。
您一定要去谷歌搜索一下,因为有些程序还在运行。
或者,您仍然需要在 Windows 中调用 Form.Close() 来关闭应用程序。
https://stackoverflow.com/questions/3097364/c-sharp-form-close-vs-form-dispose
不调用 "关闭 "可能会绕过发送大量 Win32 消息的过程,虽然我无法具体说明原因,但我认为这些消息还是很重要的...
关闭的好处是可以引发事件(可以取消),这样(表单的)外部人员就可以监视 FormClosing 和 FormClosed,以便做出相应的反应。
我不清楚如果只是处置表单,是否会引发 FormClosing 和/或 FormClosed 事件,但我可以把这个问题留给你去试验。
是的,我看过您的面板。您使用什么函数卸载?
public static class FormsMT5 { private static Form1 MainForm; private static Form2 OrderForm; private static Thread ThreadMainform, ThreadOrderForm; .................... public static void FormDeinit(int reason) { if (reason == 3 || reason == 5) return; if (MainForm != null) { MainForm.Close(); } if (OrderForm != null) { OrderForm.Close(); } if (ThreadMainform != null) ThreadMainform.Join(); if (ThreadOrderForm != null) ThreadOrderForm.Join(); MainForm = null; OrderForm = null; ThreadMainform = null; ThreadOrderForm = null; }是的,我看过你的面板。你用什么函数卸载?
那是伊戈尔 的面板。我刚刚发布了