Как определить текущий DispatcherPriority
из метода который выполняет Dispatcher
? Если я запускаю какой–то метод через Dispatcher
с приоритетом (для примера) Input
, то как узнать из самого метода, с каким приоритетом он выполняется?
В принципе можно, хотя я не вполне понимаю, зачем это вам.
Вот такой класс у меня работает:
class DispatcherSpy : IDisposable
{
public DispatcherSpy(Dispatcher dispatcher)
{
this.dispatcher = dispatcher;
dispatcher.Hooks.OperationCompleted += OnOperationCompletion;
dispatcher.Hooks.OperationStarted += OnOperationStart;
}
public DispatcherPriority? CurrentOperationPriority { get; private set; }
void OnOperationStart(object sender, DispatcherHookEventArgs e) =>
CurrentOperationPriority = e.Operation.Priority;
void OnOperationCompletion(object sender, DispatcherHookEventArgs e) =>
CurrentOperationPriority = null;
public void Dispose()
{
dispatcher.Hooks.OperationStarted -= OnOperationStart;
dispatcher.Hooks.OperationCompleted -= OnOperationCompletion;
}
readonly Dispatcher dispatcher;
}
Пользоваться так:
public partial class MainWindow : Window
{
DispatcherSpy spy;
public MainWindow()
{
InitializeComponent();
Loaded += (o, args) =>
{
spy = new DispatcherSpy(this.Dispatcher);
this.Dispatcher.InvokeAsync(Callback, DispatcherPriority.Input);
};
Unloaded += (o, args) => spy.Dispose();
}
void Callback()
{
var priority = spy.CurrentOperationPriority;
Console.WriteLine(priority);
}
}
DispatcherSpy
должен быть запущен до старта метода, который будет запрашивать своё состояние.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
После компиляции приложения, не работает отчет в reportViewer если рядом с файломexe не лежит XML файл, в котором при компиляции прописывается сервер,...
Всем доброго! Народ помогите новичку никак не могу решить вопрос вводы десятичных цифрКак это делать правильно