использовать лямбда-выражения в качестве параметра в Dispatcher.Invoke () - PullRequest
8 голосов
/ 10 октября 2011

У меня такая проблема: есть какой-то метод

private List<int> GetStatusList()
        {
            return (List<int>)GetValue(getSpecifiedDebtStatusesProperty);
        }

Чтобы вызвать его в главном потоке - я использую

`delegate List<int> ReturnStatusHandler();` ...

this.Dispatcher.Invoke(new ReturnStatusHandler(GetStatusList));

Как я могу сделать то же самое, используя вместо этого лямбда-выражениепользовательского делегата и метода?

Ответы [ 2 ]

14 голосов
/ 10 октября 2011

Вы можете передать это:

new Action(GetStatusList)

или

(Action)(() => { GetStatusList; })
7 голосов
/ 13 декабря 2012

Вы можете избежать явного приведения, создав простой метод:

void RunInUiThread(Action action)
{
     Dispatcher.Invoke(action);
}

Используйте это следующим образом:

RunInUiThread(() =>
{
     GetStatusList();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...