Прогресс бар и нить в Xamarin Android C # - PullRequest
0 голосов
/ 21 мая 2018

Я пытаюсь загрузить свой SQL, используя этот метод.Когда я нажал кнопку «Войти», метод работает, и он отображает диалоговое окно «Ход выполнения», но после завершения диалогового окна «Ход выполнения» или «Завершение потока» все еще отображается диалоговое окно «Ход выполнения круга».

Я хочу, чтобы индикатор выполнения кругового процесса исчезал с помощью RunOnUiThread().Как я могу понять, что не так с моим кодом?Между прочим, я запустил это в своем фрагменте, поэтому мне нужно использовать Activity для вызова функции RunOnUiThread.

circleprogressbar.Visibility = ViewStates.Visible;
new Thread(new ThreadStart(delegate
    {

       while (progressValue < 100)
           {
               progressValue += 10;
               circleprogressbar.Progress = progressValue;
                Thread.Sleep(2000);
           }
  Activity.RunOnUiThread(() => { circleprogressbar.Visibility = ViewStates.Invisible; });
            })).Start();

1 Ответ

0 голосов
/ 21 мая 2018

Я бы предложил создать событие для обработки этой ситуации, например:

public static class SomeClassWithEventDeclaration
{
    public event EventHandler<SomeClassType> Completed;
}

public class YourClassWithWork
{
    public void Work()
    {
        SomeClassWithEventDeclaration.Completed += (sender, data) =>
        { 
           CheckTheData(data);
           HideProgressBar();
        };
    }

    public void MethodWithDataProcessing()
    {
        try
        {
           //Your processing
           SomeClassWithEventDeclaration.Completed.Invoke(someData);
        }
        catch(Exception ex)
        {
           //SomeClassWithEventDeclaration.Completed.Invoke(someErrorData);
        }
    }
}

Я написал этот код без intellisense, поэтому для некоторых объявлений или вызовов методов может потребоваться некоторая проверка.Это решение не очень хорошее, но если оно понадобится прямо сейчас - это поможет.Также я бы посоветовал вам прочитать о Xamarin Forms - Messaging Center .Этот инструмент лучше использовать в вашей ситуации.

...