Как пометить асинхронное лямбда-выражение? - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть некоторый код здесь и я хочу знать, где разместить ожидание. Я пробовал lamba => и обычный метод, но безуспешно.

private async void ContextMenuAbroad(object sender, RightTappedRoutedEventArgs args)
{
    CheckBox ckbx = null;
    if (sender is CheckBox)
    {
        ckbx = sender as CheckBox;
    }
    if (null == ckbx)
    {
        return;
    }
    string nameOfGroup = ckbx.Content.ToString();

    var contextMenu = new PopupMenu();

    contextMenu.Commands.Add(new UICommand("Edit this Group", (contextMenuCmd) =>
    {
        Frame.Navigate(typeof(LocationGroupCreator), nameOfGroup );
    }));

    contextMenu.Commands.Add(new UICommand("Delete this Group", (contextMenuCmd) =>
    {
        SQLiteUtils rfd = new SQLiteUtils();
        rfd.DeleteGroupAsync(nameOfGroup ); 
    }));

    await contextMenu.ShowAsync(args.GetPosition(this));
}

Я добавил await, но мне нужно где-то добавить асинхронный ... но где?

Проверка Resharpers жаловалась на: «Поскольку этот вызов не ожидается, выполнение текущего метода продолжается до завершения вызова. Рассмотрите возможность применения оператора« await »к результату вызова»

Любая помощь очень ценится!

Ответы [ 3 ]

0 голосов
/ 18 сентября 2018

Просто добавьте его перед скобками, например:

contextMenu.Commands.Add(new UICommand("Edit this Group", async (contextMenuCmd) =>
{
0 голосов
/ 18 сентября 2018

Просто добавьте async перед списком аргументов

// Command to delete the current Group
contextMenu.Commands.Add(new UICommand("Delete this Group", async (contextMenuCmd) =>
{
    SQLiteUtils rfd = new SQLiteUtils();
    await rfd.DeleteGroupAsync(groupName);
}));
0 голосов
/ 18 сентября 2018

Чтобы отметить лямбда-асинхронность, используйте следующий синтаксис:

async (contextMenuCmd) =>
{
   SQLiteUtils rfd = new SQLiteUtils();
   await rfd.DeleteGroupAsync(nameOfGroup ); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...