Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

c#, timer

Posted on 2014-10-14
9
196 Views
Last Modified: 2014-10-24
In my console application, I will like to do something like

begin

at 1:00 am pst daily

run the program (it is just a query run with smtp email sent to the client)

end

Overall, the program is not a big deal. I just want to know how to code at 1:00 am pst daily in timer property in c#.

Thanks,
0
Comment
Question by:ITsolutionWizard
  • 3
  • 2
  • 2
  • +2
9 Comments
 
LVL 40
ID: 40381331
Simply program Windows Task Scheduler to start your application at the desired time.
0
 

Author Comment

by:ITsolutionWizard
ID: 40381337
No I want to do it in codes
0
 
LVL 40
ID: 40381537
In order to do it in code, you need to create a service, that runs all the time, for an operation that happens only once a day. It not a very good idea.
0
Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

 

Author Comment

by:ITsolutionWizard
ID: 40381637
I already created the service.
0
 
LVL 70

Expert Comment

by:Éric Moreau
ID: 40381794
create an application with a timer having the Tick event raised every 10 seconds (or your own interval) and check what time it is.
0
 

Author Comment

by:ITsolutionWizard
ID: 40381857
Éric Moreau: code samples please
0
 
LVL 75

Expert Comment

by:käµfm³d 👽
ID: 40381908
Have you looked into Quartz.NET yet? I haven't yet used it myself, but from what I understand it is the code equivalent of Task Scheduler.
0
 
LVL 70

Expert Comment

by:Éric Moreau
ID: 40381912
something like this:

using System;
using System.Diagnostics;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {

        private Timer _timer = new Timer();
        private DateTime _lastDateProcessed = DateTime.MinValue;

        public Form1()
        {
            InitializeComponent();
            _timer.Interval = 10000;
            _timer.Tick += _timer_Tick;
            _timer.Enabled = true;
        }

        void _timer_Tick(object sender, EventArgs e)
        {
            if ((DateTime.Now.Hour == 1) && (_lastDateProcessed != DateTime.Today.Date))
            {
                _lastDateProcessed = DateTime.Today.Date; //to be sure we are not reprocessing in the same day
                Process.Start("FullPathToYourApplication");
            }
        }
    }
}

Open in new window

0
 
LVL 16

Accepted Solution

by:
Rose Babu earned 500 total points
ID: 40382108
"Éric Moreau" has give a clear picture of the solution interms of winforms ;-) Have this for the console application...
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApp_CSHARP
{
    class Program
    {

        private static System.Timers.Timer aTimer;

        private static void SendEmail(Object source, System.Timers.ElapsedEventArgs e)
        {
            if (DateTime.Now.ToString("HHmmss") == "010001") // 01:00:01 AM
            {
                // Place the email sending code here
                bool isEmailSuccess = true;
                if (isEmailSuccess)
                {
                    Console.WriteLine("Email Successfully sent at " + DateTime.Now.ToString("HHmmss"));
                }
                else 
                {
                    Console.WriteLine("Email failed at " + DateTime.Now.ToString("HHmmss"));
                }
            }
        }

	// This application should be in running state at the time of 01:00:01
        static void Main(string[] args)
        {
            // Create a timer with a 1 second interval.
            aTimer = new System.Timers.Timer(1000);
            // POINT THE EMAIL FUNCTION TO BE CALLED. 
            // CHECK THE TIME AND THEN CONTINUE EMAILING IN THAT EMAIL FUNCTION 
            aTimer.Elapsed += SendEmail;
            aTimer.Enabled = true;
        }        
    }
}

Open in new window

Hope this helps.
0

Featured Post

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
HTML - Color not displaying correctly in EMAIL. 6 49
Help with consolidating excel files using VB.net 2 29
MailAddress in vb 4 29
Add or delete table rows 10 53
More often than not, we developers are confronted with a need: a need to make some kind of magic happen via code. Whether it is for a client, for the boss, or for our own personal projects, the need must be satisfied. Most of the time, the Framework…
Exception Handling is in the core of any application that is able to dignify its name. In this article, I'll guide you through the process of writing a DRY (Don't Repeat Yourself) Exception Handling mechanism, using Aspect Oriented Programming.
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…

766 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question