Приложение без интерфейса, с кодом в Program.cs, завершается после выполнения - C#
Формулировка задачи:
Добрый день. Есть приложение дергающее курсы валют с сайта нацбанка РБ.
Интерфейс приложению не был необходим, поэтому форма по умолчанию была удалена и весь код был написан в Program.cs.
Код выполняется ровно один раз, выдается результирующий MessageBox с курсами, после чего приложение завершается.
Хотелось бы поинтересоваться, что в проект нужно добавить, что бы после выполнения кода процесс не завершался?
Планируется его просто немного расширить, раз в минуту дергать данные и если есть изменения - выдавать MessageBox с актуальными курсами.
Исходник:
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Windows.Forms;
- using System.Xml;
- namespace Курсы_валют
- {
- class Program
- {
- static void Main()
- {
- Check();
- }
- static void Check()
- {
- DateTime actual_day;
- int new_day = 0;
- XmlDocument doc_check = new XmlDocument();
- string dt_check = DateTime.Now.AddDays(1).ToString("MM.dd.yyyy").Replace('.', '/');
- doc_check.Load(@"http://www.nbrb.by/Services/XmlExRates.aspx?ondate=" + dt_check);
- if (doc_check.InnerText.Length > 1000) {
- actual_day = DateTime.Now; new_day = 1; }
- else {
- actual_day = DateTime.Now.AddDays(-1); new_day = 0; }
- XmlDocument doc = new XmlDocument();
- XmlDocument doc_old = new XmlDocument();
- DateTime dt = actual_day.AddDays(1);
- string dt_val = dt.ToString("MM.dd.yyyy").Replace('.', '/');
- DateTime dt_old = actual_day;
- string dt_old_val = dt_old.ToString("MM.dd.yyyy").Replace('.', '/');
- doc.Load(@"http://www.nbrb.by/Services/XmlExRates.aspx?ondate=" + dt_val);
- doc_old.Load(@"http://www.nbrb.by/Services/XmlExRates.aspx?ondate=" + dt_old_val);
- double v145 = 0, v190 = 0, v19 = 0;
- string res = "";
- foreach (XmlNode node in doc_old.GetElementsByTagName("Currency"))
- {
- if (node.Attributes["Id"].Value == "145") { v145 = Convert.ToDouble(node.ChildNodes[4].InnerText.Replace('.', ',')); }
- if (node.Attributes["Id"].Value == "190") { v190 = Convert.ToDouble(node.ChildNodes[4].InnerText.Replace('.', ',')); }
- if (node.Attributes["Id"].Value == "19") { v19 = Convert.ToDouble(node.ChildNodes[4].InnerText.Replace('.', ',')); }
- }
- foreach (XmlNode node in doc.GetElementsByTagName("Currency"))
- {
- if (node.Attributes["Id"].Value == "145")
- {
- string s1 = node.ChildNodes[1].InnerText;
- string s2 = node.ChildNodes[4].InnerText;
- string s3 = Math.Round((Convert.ToDouble(s2.Replace('.', ',')) - v145), 2).ToString();
- if (Convert.ToDouble(s3) > 0)
- s3 = "+" + s3;
- res += s1 + ":\t" + s2 + "\t(" + s3 + ")\r\n";
- }
- if (node.Attributes["Id"].Value == "190")
- {
- string s1 = node.ChildNodes[1].InnerText;
- string s2 = node.ChildNodes[4].InnerText;
- string s3 = Math.Round((Convert.ToDouble(s2.Replace('.', ',')) - v190), 2).ToString();
- if (Convert.ToDouble(s3) > 0)
- s3 = "+" + s3;
- res += s1 + ":\t" + s2 + "\t(" + s3 + ")\r\n";
- }
- if (node.Attributes["Id"].Value == "19")
- {
- string s1 = node.ChildNodes[1].InnerText;
- string s2 = node.ChildNodes[4].InnerText;
- string s3 = Math.Round((Convert.ToDouble(s2.Replace('.', ',')) - v19), 2).ToString();
- if (Convert.ToDouble(s3) > 0)
- s3 = "+" + s3;
- res += s1 + ":\t" + s2 + "\t(" + s3 + ")\r\n";
- }
- }
- if (new_day == 1) {
- MessageBox.Show("Курсы валют на завтра (" + dt.AddDays(1).ToString("dd.MM.yyyy") + "):\r\n\r\n" + res, "Курсы валют"); }
- else {
- MessageBox.Show("Курсы валют на сегодня (" + dt.ToString("dd.MM.yyyy") + "):\r\n\r\n" + res, "Курсы валют"); }
- }
- }
- }
Решение задачи: «Приложение без интерфейса, с кодом в Program.cs, завершается после выполнения»
textual
Листинг программы
- Console.ReadLine()
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д