Forge
csharpdeeb25a2
1namespace CascadeIDE.Contracts;
2
3/// <summary>
4/// Логика сознательно переводит выполнение на UI-поток или UI-scheduler (напр. <c>UiScheduler.Post/InvokeAsync</c>, <c>Dispatcher</c>).
5/// </summary>
6/// <remarks>
7/// Маркер для точек, где неверный поток даёт гонки или исключения Avalonia. Не вешать на весь ViewModel «на всякий случай» —
8/// только на узкие хелперы оркестрации UI.
9///
10/// Поиск: <c>[UiThreadMarshal]</c>.
11/// </remarks>
12[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method,
13 Inherited = false,
14 AllowMultiple = false)]
15public sealed class UiThreadMarshalAttribute : Attribute
16{
17 public UiThreadMarshalAttribute()
18 {
19 }
20
21 public UiThreadMarshalAttribute(string note) => Note = note;
22
23 public string? Note { get; }
24}
25
View only · write via MCP/CIDE