?
Solved

c#, timer

Posted on 2014-10-14
9
Medium Priority
?
205 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
[X]
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
  • 3
  • 2
  • 2
  • +2
9 Comments
 
LVL 40
ID: 40381331
Simply program Windows Task Scheduler to start your application at the desired time.
0
 
LVL 1

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
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 1

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
 
LVL 1

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 2000 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

Prepare for your VMware VCP6-DCV exam.

Josh Coen and Jason Langer have prepared the latest edition of VCP study guide. Both authors have been working in the IT field for more than a decade, and both hold VMware certifications. This 163-page guide covers all 10 of the exam blueprint sections.

Question has a verified solution.

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

IntroductionWhile developing web applications, a single page might contain many regions and each region might contain many number of controls with the capability to perform  postback. Many times you might need to perform some action on an ASP.NET po…
A long time ago (May 2011), I have written an article showing you how to create a DLL using Visual Studio 2005 to be hosted in SQL Server 2005. That was valid at that time and it is still valid if you are still using these versions. You can still re…
In this video, Percona Solution Engineer Rick Golba discuss how (and why) you implement high availability in a database environment. To discuss how Percona Consulting can help with your design and architecture needs for your database and infrastr…
How to fix incompatible JVM issue while installing Eclipse While installing Eclipse in windows, got one error like above and unable to proceed with the installation. This video describes how to successfully install Eclipse. How to solve incompa…
Suggested Courses

777 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