Using the button's animation effect caused a memory leak
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 25/100
- Issue-Typ
- Bug
- Klarheit
- Muss geklärt werden
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- csharp
- Bereich
- desktop, performance
Rechercherichtung
Beginne damit, den Bericht aus der bereitgestellten ComputerInfos.txt und den gezeigten Button-Code zu reproduzieren, wobei du MaterialDesignRaisedButton mit aktiviertem IsIndeterminate verwendest, während das Fenster maximiert ist. Vergleiche die Speichernutzung zwischen Animationsschleifen sowie Hover-/Leave-Ereignissen und überprüfe anschließend, dass das Ändern des Fensterstatus das gemeldete Leck nicht mehr freigibt oder verhindert.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Bug explanation
[Machine translation, simple proofreading only]
greeting,Today I encountered a memory leak problem in using MaterialDesign, the details of the problem are as follows:
In some runtime environments (see file [ComputerInfos.txt] for computer configuration)(This behavior is not encountered in my development environment),If and only if the window state is maximized (and has not changed to another state),When the IsIndeterminate property of a button with Style="{StaticResource MaterialDesignRaisedButton}" (no other styles tested) is set to true.Each time the animation effect loops, the memory usage will increase by 3~5MB until it crashes or switches the window state.
Hovering and leave from such buttons also results in an increase in memory usage, which is the same as the effect described above.
If you switch the window state to non-maximized before the crash, the abnormally occupied memory will be freed and will not occur even if it is set to maximize again later.
When the memory is exhausted, an error is reported as shown in the [Error message] in the picture.
All Nuget packages used in the program are shown in the picture [NugetList1, 2, 3].
Regarding the video showing this problem, I put it on youtube because it exceeded the upload size limit, please visit the following two links to view it, or contact my email [email protected] and I will send it to you as an attachment.
[中文原文]
大家好,今日在使用[MaterialDesign中遇到了内存泄漏的问题,问题详细情况如下:
在某些运行环境中(计算机配置详见文件[ComputerInfos.txt])(此现象并未在我的开发环境中遇到),当且仅当窗口状态为最大化时(且未曾更改为其他状态),将Style="{StaticResource MaterialDesignRaisedButton}"的按钮(未测试其他样式)的IsIndeterminate属性设置为true时。动画效果每次循环,内存占用将增加3~5MB,直到崩溃或者切换窗口状态。
鼠标悬浮和离开此类按钮,同样会造成内存占用增加,效果与上述效果一致。
如果在崩溃前将窗口状态切换为非最大化,那么异常占用的内存将会被释放,即使之后再次设置为最大化,这个问题也不会出现。
内存耗尽时,报错如图片[Error message]所示
程序内使用的所有Nuget包如图片[NugetList1、2、3]所示
关于展示此问题的视频,由于超出了上传大小限制,我将其放在了youtube上,请访问以下两个链接来查看,或者联系我的邮箱[email protected],我将以附件的形式给您发送。
[图、文、视频资料] [Text, pictures, video materials]

https://youtube.com/shorts/PT4MLnNCSo4?feature=share
https://youtube.com/shorts/0R7E03ghs_s?feature=share
[部分代码][Part of the code]
private void RefernceImageSet_1_Btn_Click(object sender, RoutedEventArgs e)
{
if (bGetLicense)
{
_region.Activate(_ReferenceImage);
JobSingleton.Instance.NowWindowsNum = 0;
//ButtonProgressAssist.SetIsIndeterminate(RefernceImageSet_1_Btn, true);
//ButtonProgressAssist.SetIsIndeterminate(ModelSetting_Btn, false);
//ButtonProgressAssist.SetIsIndeterminate(RunSet_1_Btn, false);
//ButtonProgressAssist.SetIsIndeterminate(ParamSet_1_Btn, false);
}
}
When I comment out part of the code, the exception takes up memory and disappears, so I presume that it is a problem with MaterialDesign.
当我注释部分代码之后,异常占用内存的情况就消失了,故推断是MaterialDesign的问题。
Version
4.0.0
- Vorherrschende Sprache
- C#
- Sterne
- 16.3k
- Forks
- 3.5k
- Ø Merge
- 4 Std. 25 Min.
- Gemergte PRs (30 T.)
- 4
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus MaterialDesignInXAML/MaterialDesignInXamlToolkit
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
MaterialDesignInXAML/MaterialDesignInXamlToolkit#4124 ·
Maintainer antworten meist innerhalb von 1 Tag
-
MaterialDesignChoiceChipListBoxItem missing 'Path=Name' in GroupName binding causes selection conflict between ListBoxesEvtl. vergeben @corvinsz hat das vor 12 Tagen übernommen. Offenbug evaluation required
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 78/100
MaterialDesignInXAML/MaterialDesignInXamlToolkit#4118 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement up-for-grabs
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
MaterialDesignInXAML/MaterialDesignInXamlToolkit#2485 ·
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement evaluation required
Schwierigkeit 3/5 Ein halber Tag Anfängerfreundlichkeit 30/100
MaterialDesignInXAML/MaterialDesignInXamlToolkit#4120 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Add Semantic, Theme-Aware ColorsEvtl. vergeben @corvinsz hat das vor 22 Tagen übernommen. Offenenhancement
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
MaterialDesignInXAML/MaterialDesignInXamlToolkit#4114 · 1 Reaktion ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in MaterialDesignInXAML/MaterialDesignInXamlToolkit
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Natvs/Nt.Automaton#33 ·
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
-
a-corriger documentation
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
christian-raj/S-Aloha#312 ·
-
ready-for-agent tech-debt
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 85/100
DigiBanks99/menlo#640 ·
Maintainer antworten meist innerhalb von 1 Tag
-
ci
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 62/100
OpenTabletDriver/OpenTabletDriver#5283 ·
Maintainer antworten meist innerhalb von 3 Tagen