C#在winfrom程序中写一个定时器,每两分钟调用一个方法

前提是winform程序要开启运行,timer才会执行。

public TimeSpan fun()
        {
            System.DateTime currentTime = new System.DateTime();
            currentTime = System.DateTime.Now;

            DataTable dtMaxTime = BLL.XBC_Record.GetMaxTime();
            DateTime historyTime = Convert.ToDateTime(dtMaxTime.Rows[0][0].ToString());
            TimeSpan ts = currentTime - historyTime;
            return ts;
        }

以下有2个定时器:

        private void timer2_Tick(object sender, EventArgs e)
        {            
            TimeSpan ts = fun();
            //每两分钟定时发送一次 发送的同时检测下最新数据记录  当这个发送的时间-最新记录时间 》=10 分钟 就停止发送 
            //当有新的记录时开始激活继续发送
            if (ts.Minutes >= 10)
            {
                timer2.Enabled = false;
            }
            else
            {
                timer2.Enabled = true;
                MESWebService.WebServiceSoapClient MesWeb = new MESWebService.WebServiceSoapClient("WebServiceSoap", BLL.Config.GetValue("XBC", "MES接口"));
                MesWeb.GetServiceTime();
                //MessageBox.Show(MesWeb.GetServiceTime().ToString());
            }
        }

        private void timer3_Tick(object sender, EventArgs e)
        {
            TimeSpan ts = fun();            
            if (ts.Minutes < 10)
            {
                timer2.Enabled = true;
            }
        }

public static DataTable GetMaxTime()
        {
            string sql = "select MAX(AddTime) from XBC_Record ";
            List<SqlParameter> paras = new List<SqlParameter>();
            return Util.DBHelper.Select(sql, paras);
        }

/// <summary>
        /// 查询记录
        /// </summary>
        /// <param name="sql">sql语句</param>
        /// <param name="paras">参数集合</param>
        /// <returns></returns>
        public static DataTable Select(string sql, List<SqlParameter> paras)
        {
            using (SqlConnection sqlCon = new SqlConnection(Util.Configure.ConnStr))
            {
                DataTable dt = new DataTable();
                try
                {
                    if (sqlCon != null)
                    {
                        sqlCon.Open();
                        DataSet ds = new DataSet();
                        SqlCommand cmd = new SqlCommand(sql, sqlCon);
                        foreach (SqlParameter para in paras)
                        {
                            cmd.Parameters.Add(para);
                        }
                        SqlDataAdapter da = new SqlDataAdapter(cmd);
                        da.Fill(ds);
                        cmd.Parameters.Clear();
                        return ds.Tables[0];
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    sqlCon.Close();
                }
                return null;
            }
        }

发布了30 篇原创文章 · 获赞 2 · 访问量 6591

猜你喜欢

转载自blog.csdn.net/tangliuqing/article/details/102665147