none
Qual é a melhor maneira de fazer o .EXE para executar uma rotina ?

    Question

  • Eu tenho que desenvolver um EXE em C# para executar um rotina de 10 em 10 minutos. Qual é a melhor maneira de fazer isso ? Com um "console application" ou com um "windows form application" ? Eu estou com esta dúvida pois a minha rotina não terá interface.

    Guilherme Costa
    Email: guilerme18@hotmail.com

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    Monday, December 19, 2011 6:17 PM

Answers

  • Faça um Serviço (windows serice). Utilize um Timer para fazer o evento.

    Exemplo (mostra o horario de dez em dez segundos - windows forms):

       public partial class Form2 : Form
        {
            private System.Timers.Timer timerMudarTextoLabel;
    
            public Form2()
            {
                InitializeComponent();
                IniciarExibirHora();
            }
    
            void IniciarExibirHora()
            {
                timerMudarTextoLabel = new System.Timers.Timer();
                timerMudarTextoLabel.Elapsed += new System.Timers.ElapsedEventHandler(ShowHorario);
                timerMudarTextoLabel.AutoReset = true;
                timerMudarTextoLabel.Interval = 10000;
                timerMudarTextoLabel.Start();
            }
    
            private void ShowHorario(object source, System.Timers.ElapsedEventArgs e)
            {
                string horaAtual = DateTime.Now.ToString("hh:mm:ss");
                MessageBox.Show(horaAtual);           
                System.Threading.Thread.Sleep(10000);           
            }        
        }
    
    



    --
    Marque as respostas e ajude a melhorar a busca do fórum.
    Monday, December 19, 2011 6:34 PM
  • Você vai utilizar o Evento OnStart para chamar seu método.

    Recomendo ter uma classe que faça o processamento.

    Criando um Windows Service
    http://www.dotnetinterior.com.br/v1/?p=846

    Creating a Windows Service in C#
    http://www.c-sharpcorner.com/UploadFile/mahesh/window_service11262005045007AM/window_service.aspx

     

    Procure sobre o assunto no site do Macoratti também. Veja o que é o que faz cada evento.


    --
    Marque as respostas e ajude a melhorar a busca do fórum.
    Monday, December 19, 2011 7:37 PM

All replies

  • Faça um Serviço (windows serice). Utilize um Timer para fazer o evento.

    Exemplo (mostra o horario de dez em dez segundos - windows forms):

       public partial class Form2 : Form
        {
            private System.Timers.Timer timerMudarTextoLabel;
    
            public Form2()
            {
                InitializeComponent();
                IniciarExibirHora();
            }
    
            void IniciarExibirHora()
            {
                timerMudarTextoLabel = new System.Timers.Timer();
                timerMudarTextoLabel.Elapsed += new System.Timers.ElapsedEventHandler(ShowHorario);
                timerMudarTextoLabel.AutoReset = true;
                timerMudarTextoLabel.Interval = 10000;
                timerMudarTextoLabel.Start();
            }
    
            private void ShowHorario(object source, System.Timers.ElapsedEventArgs e)
            {
                string horaAtual = DateTime.Now.ToString("hh:mm:ss");
                MessageBox.Show(horaAtual);           
                System.Threading.Thread.Sleep(10000);           
            }        
        }
    
    



    --
    Marque as respostas e ajude a melhorar a busca do fórum.
    Monday, December 19, 2011 6:34 PM
  • Criei um projeto novo e apareceu o código abaixo. Aonde eu coloco o meu código ? Não estou entendendo como ele funciona:

    namespace IntegracaoJiraSac
    {
        partial class Service1
        {
            /// <summary>
            /// Required designer variable.
            /// </summary>
            private System.ComponentModel.IContainer components = null;

            /// <summary>
            /// Clean up any resources being used.
            /// </summary>
            /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
            protected override void Dispose(bool disposing)
            {
                if (disposing && (components != null))
                {
                    components.Dispose();
                }
                base.Dispose(disposing);
            }

            #region Component Designer generated code

            /// <summary>
            /// Required method for Designer support - do not modify
            /// the contents of this method with the code editor.
            /// </summary>
            private void InitializeComponent()
            {
                components = new System.ComponentModel.Container();
                this.ServiceName = "Service1";
            }

            #endregion
        }
    }


    Guilherme Costa
    Email: guilerme18@hotmail.com

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    Monday, December 19, 2011 7:31 PM
  • Caso sua rotina seja para executar operações como leitura e escrita de arquivos, modificações de permissões e coisas que não irão trabalhar com nenhuma interface, crie um Windows Service como nosso amigo Paulo sugeriu acima. Porém se você irá executar uma rotina que necessitará abrir uma outra aplicação que tenha interface gráfica, crie um um console application e coloque-o para executar em background:

    http://social.msdn.microsoft.com/Forums/ar-SA/clr/thread/a365259f-577a-48bd-a5bd-032aaffc8432

    http://stackoverflow.com/questions/2239151/how-to-run-console-application-in-background-no-ui

    Espero que ajude! ^^

    Monday, December 19, 2011 7:34 PM
  • Você vai utilizar o Evento OnStart para chamar seu método.

    Recomendo ter uma classe que faça o processamento.

    Criando um Windows Service
    http://www.dotnetinterior.com.br/v1/?p=846

    Creating a Windows Service in C#
    http://www.c-sharpcorner.com/UploadFile/mahesh/window_service11262005045007AM/window_service.aspx

     

    Procure sobre o assunto no site do Macoratti também. Veja o que é o que faz cada evento.


    --
    Marque as respostas e ajude a melhorar a busca do fórum.
    Monday, December 19, 2011 7:37 PM