Я не совсем уверен, что вы хотите сделать, но чтобы ответить на ваш вопрос:
Но нормально ли, что мой метод IncrementPoints не является асинхронным методом?
Да, все в порядке, и это тоже одна из целей Task.Run
.Вы можете использовать Task.Run
, чтобы превратить синхронные операции в ожидаемые асинхронные операции.Таким образом, вы должны поместить не асинхронные методы в лямбду.Если бы IncrementPoints
был асинхронным, вам бы не понадобился Task.Run
, потому что вы можете просто сделать:
await IncrementPoints(...);
Ваш код должен быть примерно таким:
vm.Points = new String('☆', phrase.Points + pts);
await Task.Run(() =>
{
App.DB.IncrementPoints(phrase, pts);
App.DB.IncrementHistory(HIST.Views);
});
await Task.Delay(250);