Приложение без интерфейса, с кодом в 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()

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5
Похожие ответы