【问题标题】:Exception 'System.ExecutionEngineException' occurred in DirectWriteForwarder.dllDirectWriteForwarder.dll 中出现异常“System.ExecutionEngineException”
【发布时间】:2021-09-30 17:20:00
【问题描述】:

我正在 .NET Core 3.1 上构建 WPF 应用程序。基本上,应用程序的设置是一个带有两个选项卡的选项卡控件的主屏幕。每个选项卡都有一个在后台运行的线程来从不同的设备中提取数据。

在每个选项卡中,我都有一个框架,其中包含一个页面,以便每次更改选项卡时每个页面都会打开和关闭,以减少 UI 线程上的负载。

<TabControl SelectedItem="{Binding SelectedMainTab, Mode=TwoWay}">

    <!-- SCAN TAB -->
    <TabItem x:Name="ScanTab">
        <TabItem.Header>
            <StackPanel Orientation="Horizontal" VerticalAlignment="Center" Width="100" Height="40" HorizontalAlignment="Center">
                <TextBlock Style="{StaticResource TabTextBlock}" Text="Scan" VerticalAlignment="Center" Margin="5,0"/>
            </StackPanel>
        </TabItem.Header>
        <Frame Source="ScanView.xaml"/>
    </TabItem>

    <!-- VALIDATION TAB -->
    <TabItem x:Name="ValidationTab">
        <TabItem.Header>
            <StackPanel Orientation="Horizontal" VerticalAlignment="Center" Width="150" Height="40" HorizontalAlignment="Center">
                <TextBlock Style="{StaticResource TabTextBlock}" Text="Validation" VerticalAlignment="Center" Margin="5,0"/>
            </StackPanel>
        </TabItem.Header>
        <Frame Source="ValidationView.xaml"/>
    </TabItem>
</TabControl>

基本上,当页面卸载时,我让它停止正在运行的线程,轮询设备状态。很简单。但是当我加载应用程序并开始在选项卡之间来回切换时会发生什么。 UI 冻结,然后崩溃并显示 An Exception 'System.ExecutionEngineException' occurred in DirectWriteForwarder.dll

没有发生这种情况的行号,并且通过一些谷歌搜索,我似乎无法找到关于这个 DLL 是什么的太多信息,除了它是 .net 的一部分。任何帮助将不胜感激!

编辑

在尝试复制错误时,我也让它崩溃,System.Collections.dll 是发生异常的位置。但同样的例外。

【问题讨论】:

    标签: c# wpf .net-core


    【解决方案1】:

    所以我可能对我自己的问题有一个答案。我没有完全确定问题的原因。但发现这与垃圾收集有关,可能与我在切换选项卡时如何处理一个线程有关。

    最终,在选项卡打开的页面的卸载事件中,我将“关闭”功能放置在 IsBackground = true 的线程中。这将允许他们在不使用正在处理的页面中使用的某些属性的情况下处理自己。

    这似乎解决了我的问题,因为我不再收到该崩溃了。

    【讨论】:

      猜你喜欢
      • 2011-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-31
      • 2012-12-12
      相关资源
      最近更新 更多