Обнаружение низкой активности пользователя и проверка электронной почты в фоновом режиме

Я пишу приложение, которое должно делать некоторые вещи в фоновом режиме: проверять электронные письма и анализировать их, чтобы вводить некоторые данные в базу данных, и подключаться к веб-службе, чтобы проверять статус некоторых асинхронных операций. .

Прямо сейчас мое решение — это простой таймер, который выполняет эти операции по заранее заданному расписанию: электронная почта каждые пять минут, а веб-служба проверяет каждую минуту (но это выполняется только при наличии ожидающих действий, поэтому большую часть времени это ничего не делает.)

Прямо сейчас я не использую для этого поток (я нахожусь на ранней стадии разработки). Но мой план состоит в том, чтобы создать фоновый поток и позволить ему выполнять работу в автономном режиме.

Пара вопросов:

  1. Я планирую контролировать все в таймере(ах). Настройте глобальную переменную (элементарную «блокировку»), чтобы запустить поток. Если «блокировка» уже установлена, игнорируйте ее. Поток очищает его при завершении. Должен ли я использовать более надежный механизм блокировки/очереди для своих потоков? (у меня уже установлен OmniThread)
  2. Как запустить поток с низким приоритетом? Я не хочу, чтобы приложение чувствовало себя вялым, когда фоновый поток выполняет вставку данных или работу в сети.
  3. Есть ли чистый способ проверить активность пользователя и запустить этот поток только тогда, когда пользователь не занят клавиатурой/мышью?

Имейте в виду, что я не разбираюсь в тредах.Однажды я написал приложение для синхронизации по FTP, так что я не совсем новичок, но это было давно.

5
задан Leonardo Herrera 13 March 2012 в 15:08
поделиться

0 ответов

Другие вопросы по тегам:

Похожие вопросы: