Skip to content

Commit 2429141

Browse files
authored
Let MarkdownConfig.Default supports multithreaded
1 parent 389b9ca commit 2429141

File tree

3 files changed

+7
-3
lines changed

3 files changed

+7
-3
lines changed

components/MarkdownTextBlock/src/MarkdownConfig.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,7 @@ public record MarkdownConfig
1111
public ISVGRenderer? SVGRenderer { get; set; }
1212
public MarkdownThemes Themes { get; set; } = MarkdownThemes.Default;
1313

14-
public static MarkdownConfig Default = new();
14+
[ThreadStatic]
15+
private static MarkdownConfig? _default;
16+
public static MarkdownConfig Default => _default ??= new MarkdownConfig();
1517
}

components/MarkdownTextBlock/src/MarkdownTextBlock.Properties.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public partial class MarkdownTextBlock
1515
nameof(Config),
1616
typeof(MarkdownConfig),
1717
typeof(MarkdownTextBlock),
18-
new PropertyMetadata(new MarkdownConfig(), OnConfigChanged)
18+
new PropertyMetadata(MarkdownConfig.Default, OnConfigChanged)
1919
);
2020

2121
/// <summary>

components/MarkdownTextBlock/src/MarkdownThemes.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ namespace CommunityToolkit.WinUI.Controls;
1414

1515
public sealed class MarkdownThemes : DependencyObject
1616
{
17-
internal static MarkdownThemes Default { get; } = new();
17+
[ThreadStatic]
18+
private static MarkdownThemes? _default;
19+
internal static MarkdownThemes Default => _default ??= new MarkdownThemes();
1820

1921
public Thickness Padding { get; set; } = new(8);
2022

0 commit comments

Comments
 (0)