Запланируйте приложение на C # - PullRequest
2 голосов
/ 02 августа 2010

Я разработал приложение для подключения к почте pop3, чтения электронных писем и вставки их в базу данных.Мне нужен этот сервис для выполнения задачи один раз в час.Может ли кто-нибудь помочь мне с этим, потому что я застрял?

static void Main(string[] args)
  {
   TcpClient Server;
   NetworkStream NetStrm=null;
   StreamReader RdStrm=null;
   string Data, tmpMessage="", mail="", szTemp, CRLF = "\r\n", ch="";
   byte[] szData;
   int i=0, counter=0;
   MySqlConnection connection = new MySqlConnection();
   [snip]
   Console.WriteLine(RdStrm.ReadLine());
   connection.Close();
   Console.ReadLine();
   }

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

Ответы [ 4 ]

4 голосов
/ 02 августа 2010

Если вы хотите использовать свое приложение «как есть», то вы можете настроить его с помощью планировщика заданий Windows, службы, входящей в каждую версию Windows.

Другой подход заключается в создании выделенной службы Windows, но для этого необходимо переписать приложение из консольного приложения в службу Windows (раньше называлось «Служба NT»).

Надеюсь, это поможет.

2 голосов
/ 02 августа 2010

Забудьте о службах Windows - это безжалостный подход.Основная проблема здесь: сервис все время жив.Вы хотите, чтобы простой процесс запускался один раз в час, занимая, может быть, 2 минуты ... и чтобы эта штука не забивала вашу память до конца часа.

Используйте планировщик задач в Windows.Создайте приложение командной строки для загрузки, запускайте его один раз в час или по расписанию (ежечасно ночью, каждые 15 минут в течение дня) с помощью планировщика.Готово.

http://en.wikipedia.org/wiki/Task_Scheduler содержит хорошую ссылку на то, как это работает.

0 голосов
/ 02 августа 2010

И если вы не хотите реализовывать мельчайшие подробности yourselv, есть хорошие библиотеки, такие как DemiCode Scheduler и Quartz.NET .

0 голосов
/ 02 августа 2010

Существует множество учебных пособий, в которых объясняется, как написать службу, - я предлагаю вам начать с нее (просто введите "C # service tutorial" в google)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...