gpt4 book ai didi

.net - UIElement.UpdateLayout()在什么情况下可以调用Environment.FailFast?

转载 作者:行者123 更新时间:2023-12-03 07:40:36 24 4
gpt4 key购买 nike

所以我有一个控件,它响应它的项目被更改,调用 UpdateLayout()。这会产生如下所示的堆栈跟踪:

Description: The application requested process termination through System.Environment.FailFast(string message). Message: Unrecoverable system error. Stack: at System.Environment.FailFast(System.String) at MS.Internal.Invariant.FailFast(System.String, System.String) at MS.Internal.Invariant.Assert(Boolean, System.String) at System.Windows.Window.GetWindowMinMax() at System.Windows.Window.MeasureOverride(System.Windows.Size) at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size) at System.Windows.UIElement.Measure(System.Windows.Size) at System.Windows.ContextLayoutManager.UpdateLayout() at System.Windows.UIElement.UpdateLayout() at



显然,在某些情况下,GetWindowMinMax() 会导致某种 Assert() 失败,这会导致调用 Environment.FailFast。在调用 UpdateLayout 之前我可以检查哪些条件以确保不会发生这些情况以避免遇到此错误?

最佳答案

使用 Reflector 并查看 GetWindowMinMax 的代码.这是断言:

Invariant.Assert (!this.IsCompositionTargetInvalid, 
"IsCompositionTargetInvalid is supposed to be false here") ;

因此,您的窗口似乎还没有真正创建为 Win32 窗口,或者它的 Win32 窗口已经被破坏。

关于.net - UIElement.UpdateLayout()在什么情况下可以调用Environment.FailFast?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10757164/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com