开源改变世界!!

在设置菜单中冻结 #161

推推 grbl 2年前 (2023-02-09) 184次浏览
关闭
amoineau 打开了这个问题 2020 年 11 月 12 日 · 14条评论
关闭

在设置菜单中冻结#161

amoineau 打开了这个问题 2020 年 11 月 12 日 · 14条评论

评论

在设置菜单中冻结 #161
阿莫诺 评论了 2020 年 11 月 12 日  

描述错误
我下载了最新版本的 GRBL-plotter (1.5.2.2) 并开始更改设置菜单中的内容(工作区域、DXF 到 Gcode 设置、工具表等)。每次我单击复选框或更改文本字段时,应用程序都会冻结,再加上我第二次应用更改时。它可以从一秒到一整分钟不等。

我想知道这是否是已知行为,或者问题是否特定于我的设置,以及您是否知道如何解决这个问题?

我知道我最近一直在向您请求很多帮助,我真的很感谢您的响应和辛勤工作。

在设置菜单中冻结 #161 amoineau 添加了 漏洞 标签 2020 年 11 月 12 日
在设置菜单中冻结 #161
所有者

你是从 VisualStudio 运行的吗?
这对我来说是一样的,我不记得必须关闭哪个调试选项 – 我会弄清楚的。

在设置菜单中冻结 #161
作者

是的,我在发布后意识到这可能是问题的根源。我从 bin/Debug 和 Release .exe 开始尝试,确实它在那里似乎工作正常!

在设置菜单中冻结 #161
作者
阿莫诺 评论了 2020 年 11 月 12 日  

但是,如果我从那里更改设置,它会持久吗?

在设置菜单中冻结 #161
所有者

设置应保存在 C:\User\myName\AppData\Local\GRBL_Plotter\subfolder

在设置菜单中冻结 #161
作者

似乎在我更改内容时保存用例并在我想应用更改时加载它是一个可行的选择。你觉得合适吗?
移动用例并确保它是最新的有点乏味。但是那样的话,我通过 .exe 版本进行设置,我仍然可以使用 VS 来编辑东西。

在设置菜单中冻结 #161
所有者

我仍然需要检查需要关闭的调试选项,以加快设置表单的速度。
您可以将 INI 文件保存在桌面上,然后将它们拖放到 GRBL-Plotter 上,如下所示:https ://youtu.be/2Cc7sjwkxK8

在设置菜单中冻结 #161
作者

关于这一点,我想知道:机器配置是否包括当前用例中的所有内容?因为我每次都保存和导入,但通过阅读它们感觉我可以只使用全局配置文件。

在设置菜单中冻结 #161
所有者

保存“机器配置”包括几乎所有设置(包括自定义按钮)。
“用例”应该只保存导入选项。您可以使用机器配置中的设置扩展此文件(通过文本编辑器)。
两者的读数相同:如果设置

[Info]
Set Defaults=True

所有导入设置都将设置为默认值。检查文件 \MachineControl\IniFile.cs

在设置菜单中冻结 #161
所有者

这可能会有所帮助(https://stackoverflow.com/questions/12567984/visual-studio-debugging-loading-very-slow):

  • 转到工具 – >选项 – >调试 – >常规
  • 检查“仅启用我的代码”旁边的复选标记。
在设置菜单中冻结 #161
作者

好的,我会试试的!

在设置菜单中冻结 #161
作者

它有效,但现在每次发生某些事情时我都会收到这些消息:
在设置菜单中冻结 #161

在设置菜单中冻结 #161
作者

但老实说,这并不是一个真正的问题,如果我想调试(更像是使用断点来了解事情是如何工作的),我会编译然后运行,如果我想将它用于实际或调整设置,我会用 .exe 打开.

在设置菜单中冻结 #161
所有者

您可以尝试使用此代码修复它(直到今晚我才能尝试):
在文件“MainFormStreaming.cs”中找到函数“private void updateProgressBar”
替换这两行:

pbFile.Value = cPrgs;
pbBuffer.Value = bPrgs;

经过:

        //    pbFile.Value = cPrgs;
            if (this.pbFile.InvokeRequired)
            {   this.pbFile.BeginInvoke((MethodInvoker)delegate () { this.pbFile.Value = cPrgs; }); }
            else
            {   this.pbFile.Value = cPrgs;   }

        //    pbBuffer.Value = bPrgs;
            if (this.pbBuffer.InvokeRequired)
            {   this.pbBuffer.BeginInvoke((MethodInvoker)delegate () { this.pbBuffer.Value = bPrgs; }); }
            else
            {   this.pbBuffer.Value = bPrgs;   }

在设置菜单中冻结 #161
作者

好吧,虽然我给你这个有一个例子,但我有很多不同的 ^^’。
我通常可以通过“继续”来跳过它们,但是当它在循环中发生时……
所以我决定取消选中“只是我的代码”并像那样工作。