Я пытаюсь получить действительно простое приложение с запуском перечисления google Task. У меня есть SQLite local db Я бы хотел синхронизировать/попробовать синхронизацию с регулярным интервалом с сервером Google.Xamarin.Forms Background Thread
Я думал просто запустить простой поток фона, чтобы он легко работал на всех устройствах.
Проблема сводится к созданию этой фоновой нити в проекте PCL (Xamarin.Forms) Кажется, я не могу найти правильный способ ее создания.
В настоящее время я просто второй поток работает как таковой:
private bool Sync() { //Does stuffs }
private void SynchronizeData()
{
// Repeats sync process every 35s
Device.StartTimer (new TimeSpan (0, 0, 35), Sync);
}
// Is called pretty much when app starts.
private void StartSynchronizationThread()
{
Task.Factory.StartNew(SynchronizeData,
CancellationToken.None, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default);
}
Хотя он должен в любом случае не может быть большой проблемой, учитывая количество операций действительно низкий (в худшем случае для целей тестирования, было бы меньше блокировка секунд), я испытываю значительное замораживание моего приложения, когда поток запускается первым. (Таймер, истекающий в первый раз) Замораживание продолжается в течение хорошей минуты ...
После того, как это произошло, я могу оставаться в приложении в основном навсегда без единой проблемы. Я заметил, что появляется следующее довольно поздно, хотя:
[искусство] Thread [2, TID = 2532, WaitingInMainSignalCatcherLoop, Thread * = 0xee170800, равный = 0x12c00080, "Сигнал Catcher"]: реагирует на сигнал 3 [ art] Написал трассировки стека до '/data/anr/traces.txt' [art] Написал трассировки стека до '/data/anr/traces.txt' [art] Тема [2, tid = 2532, WaitingInMainSignalCatcherLoop, Thread * = 0xee170800, равный = 0x12c00080, "Сигнал пропастью"]: реагирует на сигнал 3 [искусство] Написал трассировки стека, чтобы '' /data/anr/traces.txt
Следы на самом деле не дают мне больше информации, хотя ... Но это, вероятно, связано с этим.
Как любой намек на этот вопрос? Пакет, пример кода или что-нибудь еще? Надеюсь, я пропустил что-то большое.
Спасибо.
Спасибо за ваш ответ, к сожалению, я это было сделано какое-то время, прежде чем вы ответили и не могли дать попробовать на ваше решение, но я прослежу, чтобы попробовать его если это когда-либо проявляется: P Надеюсь, это может привести других людей на правильный путь, хотя D – MagiKruiser