Загрузка появляется только в конце выполнения кода - PullRequest
3 голосов
/ 21 октября 2019

У меня есть кнопка, которая удаляет записи из таблицы sqlite. Я пытался поставить экран загрузки, но он просто появляется в конце. Вы можете мне помочь?

btnImportar.Click += delegate
{
    UserDialogs.Instance.ShowLoading("Aguarde...", MaskType.Black);

    string stm = "DELETE FROM Trender";

    using (SqliteCommand cmd2 = new SqliteCommand(stm, con))
    {
        cmd2.ExecuteNonQuery();
    }
}

Ответы [ 4 ]

1 голос
/ 22 октября 2019

вы можете попробовать это:

btnImportar.Click += delegate
 {
  UserDialogs.Instance.ShowLoading("Aguarde...", MaskType.Black);
  Task.Run(()=> {
       string stm = "DELETE FROM Trender";
       using (SqliteCommand cmd2 = new SqliteCommand(stm, con))
         {
          cmd2.ExecuteNonQuery();
         }
      });

 }
1 голос
/ 22 октября 2019

Я думаю, что вы сдерживаете поток пользовательского интерфейса от обновления. Сделай что-то вроде

UserDialogs.Instance.ShowLoading("Aguarde...", MaskType.Black);

ThreadPool.QueueUserWorkItem(_ => {
    string stm = "DELETE FROM Trender";

    using (SqliteCommand cmd2 = new SqliteCommand(stm, con))
    {
        cmd2.ExecuteNonQuery();
    }

    Activity.RunOnUiThread(() => {
        // Dismiss the dialog
    })
})
0 голосов
/ 22 октября 2019
btnImportar.Click += delegate
 {
UserDialogs.Instance.ShowLoading("Aguarde...", MaskType.Black);
 Task.Factory.StartNew(async () =>
            {
string stm = "DELETE FROM Trender";

using (SqliteCommand cmd2 = new SqliteCommand(stm, con))
{
   await  cmd2.ExecuteNonQueryAsync();
} 
 });
}
0 голосов
/ 21 октября 2019

Можете ли вы попробовать что-то вроде следующего:

btnImportar.Click += button_Click;

private async void button_Click(object sender, EventArgs e)
{ 
    UserDialogs.Instance.ShowLoading("Aguarde...", MaskType.Black);

    await DeleteContent();
}

private async Task DeleteContent()
{
    string stm = "DELETE FROM Trender";
    using (SqliteCommand cmd2 = new SqliteCommand(stm, con))
    {
        await cmd2.ExecuteNonQueryAsync();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...