如何使用System.Timers.Timer和System.Threading在C#中进行提醒

时间:2014-03-27 03:54:00

标签: c#

我正在尝试创建一个简单的约会剩余应用程序,我将在约会时间提前15分钟预约剩余时间。我在表单加载时调用timer1_Tick(object sender,EventArgs e)函数。

private void timer1_Tick(object sender, EventArgs e)
    {
        try
        {
        DateTime now = DateTime.Now;
        //now = now.AddMinutes(10);
        now = now + TimeSpan.FromMinutes(15);
        string longtime = now.ToString("hh:mm:ss tt");//    "03:46:00 PM";
        string shortdate = now.ToString("dd/MM/yyyy"); //"21/02/2015";
        MySqlCommand cmdchk = new MySqlCommand("select * from tbl_appointment where adate=@adte and atime=@time", con);
        cmdchk.Parameters.AddWithValue("@adte", shortdate);
        cmdchk.Parameters.AddWithValue("@time", longtime);
        dr = cmdchk.ExecuteReader();
        if (dr.HasRows)
        {
            while (dr.Read())
            {
                appointmentid = dr.GetInt32(0);
                smsmobile = dr.GetString(2);
            }
            dr.Close();
            Frm_app_pop pop = new Frm_app_pop();
            pop.appointmentid = appointmentid.ToString();
            pop.Show();
            words[0] = appointmentid;
        }
        dr.Close();
        dr.Dispose();
        if (flags.remiderflag == true)
        {
            remindtimer.Start();
        }
        dr.Close();


        }
        catch (Exception ex)
        {
            string exce = ex.Message;
        }
    }

我已将时间间隔设置为1秒。每秒运行一次timer1_Tick函数,该函数连接到数据库并获取longtime中的时间,这是我想要设置提醒的时间。

当我运行此代码时,它运行正常,但我没有收到任何提醒(应使用pop.show()显示),此代码中没有任何错误。

请分享此问题的解决方案。

2 个答案:

答案 0 :(得分:0)

检查网络连接和防火墙检查。从命令行,您必须运行以下命令,如果成功,您可以发送邮件。

  1. ping google.com
  2. tracert google.com
  3. 之后将ssl.enable属性设置为false。

答案 1 :(得分:0)

尝试增加mail.imap.connectiontimeout javamail属性的值,例如10000