Я работаю над задачей, в которой мы отображаем ActivityIndicator на телефоне пользователя при загрузке данных. Теперь текущий ActivityIndicator отображает метку «Загрузка ...» при фоновой загрузке в процессе. Но мне нужно обновить ярлык с «Загрузка ...» на что-то вроде «Загрузка еще ...», если загрузка занимает более 20 секунд.
Я пытаюсь выяснить, как использовать функцию таймера из C#, чтобы проверить, выполнялась ли моя загрузка за последние 20 секунд. Насколько я понимаю, OnTimedEvent () срабатывает только по истечении установленного времени, но мне нужно выполнять процесс загрузки параллельно. Вот что я пытаюсь сделать sh.
SetTimer(20000, "Still Downloading...")
// Here while the below api call is running, if it takes more than 20 seconds to complete then fire up the event to update the loading label.
var response = obj.GetFileData(JsonConvert.SerializeObject(inputJson));
Ниже представлена функция моего таймера, которую я прочитал здесь
public static void SetTimer(int timerTime, string eventMessage)
{
if (timerTime > 0)
{
_timer = new Timer(timerTime);
_timer.Elapsed += (sender, e) => { OnTimedEvent(eventMessage); };
_timer.AutoReset = false;
_timer.Enabled = true;
}
}
public static void OnTimedEvent(string eventMessage)
{
mylabel.text = eventMessage;
}
Я не уверен, что мой подход к использованию класса таймера здесь правильный или не. Я сталкивался с несколькими сообщениями о классе таймера, но все они говорят о срабатывании события, когда таймер истек, но не говорят о запуске таймера параллельно моему вызову API.
Любая помощь будет оценена.