当前位置:编程学习 > C#/ASP.NET >>

FORM load后TIMER没有执行

        private void frmAA_Load(object sender, EventArgs e)
        {
            RunInsertData_Timer();
        }
        private bool RunInsertData_Timer()
        {
            System.Timers.Timer aTimer = new System.Timers.Timer();
            aTimer.Interval = 2000;
            aTimer.Elapsed += new System.Timers.ElapsedEventHandler(InsertData);
            aTimer.AutoReset = true;
            aTimer.Enabled = true;
            return true;
        }
        public void InsertData(object source, System.Timers.ElapsedEventArgs e)
        {
            MessageBox.Show("This is timer test");
        }


请教各位大侠,上面的代码怎么会不起作用呢,messagebox.show一直没有弹出消息 --------------------编程问答-------------------- 怎么会 测试正常 --------------------编程问答--------------------
System.Timers.Timer aTimer = new System.Timers.Timer(); //<--作为类成员,就不会误被垃圾回收。
private bool RunInsertData_Timer()
        {
            aTimer.Interval = 2000;
            aTimer.Elapsed += new System.Timers.ElapsedEventHandler(InsertData);
            aTimer.AutoReset = true;
            aTimer.Enabled = true;
            return true;
        }
--------------------编程问答-------------------- 没有问题的啊
正常

FORM 属性里事件frmAA_Load没有啦 这样的话就没有调用函数 --------------------编程问答-------------------- 测试正常

        private void button2_Click(object sender, EventArgs e)
        {
            RunInsertData_Timer();
        }
        private bool RunInsertData_Timer()
        {
            System.Timers.Timer aTimer = new System.Timers.Timer();
            aTimer.Interval = 2000;
            aTimer.Elapsed += new System.Timers.ElapsedEventHandler(InsertData);
            aTimer.AutoReset = true;
            aTimer.Enabled = true;
            return true;
        }
        public void InsertData(object source, System.Timers.ElapsedEventArgs e)
        {
            MessageBox.Show("This is timer test");
        }

       
--------------------编程问答-------------------- 我也测试了下,这段代码运行是正常的们可以弹出窗口 --------------------编程问答--------------------
引用 1 楼 bdmh 的回复:
怎么会 测试正常

但是如果我把MessageBox.show换成自己的函数, if (msg.CallService("VIEW", "View_DATA_Info", in_parm, ref out_param) == false)
                {
                    int a = 1;
                    return;
                }
当到达CallService的时候,就出问题了,程序出现闪退一样的
--------------------编程问答--------------------
引用 4 楼 weboscar 的回复:
测试正常

        private void button2_Click(object sender, EventArgs e)
        {
            RunInsertData_Timer();
        }
        private bool RunInsertData_Timer()
        {
            System.Timers.Timer aTimer = new System.Timers.Timer();
            aTimer.Interval = 2000;
            aTimer.Elapsed += new System.Timers.ElapsedEventHandler(InsertData);
            aTimer.AutoReset = true;
            aTimer.Enabled = true;
            return true;
        }
        public void InsertData(object source, System.Timers.ElapsedEventArgs e)
        {
            MessageBox.Show("This is timer test");
        }

       


但是如果我把MessageBox.show换成自己的函数, if (msg.CallService("VIEW", "View_DATA_Info", in_parm, ref out_param) == false)
                {
                    int a = 1;
                    return;
                }
当到达CallService的时候,就出问题了,程序出现闪退一样的
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,