簡體   English   中英

DirectWriteForwarder.dll 中發生異常“System.ExecutionEngineException”

[英]Exception 'System.ExecutionEngineException' occurred in DirectWriteForwarder.dll

我正在 .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

沒有任何行號發生在谷歌搜索上,除了它是 .net 的一部分之外,我似乎無法找到太多關於這個 DLL 是什么的信息。 任何幫助將不勝感激!

編輯

在嘗試復制錯誤時,我也讓它崩潰,System.Collections.dll 是發生異常的位置。 不過同樣的例外。

所以我可能對我自己的問題有一個答案。 我沒有完全確定問題的原因。 但是發現這與垃圾收集有關,並且可能與我在切換選項卡時如何處理一個線程有關。

最終,在選項卡打開的頁面的卸載事件中,我將“關閉”功能放置在 IsBackground = true 的線程中。 這將允許他們在不處理他們使用的頁面中的某些屬性的情況下處理自己。

這似乎解決了我的問題,因為我不再收到崩潰了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM