我如何使我的TimerAction工作?(Windows窗体应用程序)

本文关键字:Windows 窗体 应用程序 工作 何使 我的 TimerAction | 更新日期: 2023-09-27 18:01:36

我在一个Windows窗体应用程序工作,我需要使用定时器。我有这个方法来设置定时器,以便在特定的时间做某事:

      private void SetTimerValue()
    {
        // trigger the event at 7 AM. For 7 PM use 19 i.e. 24 hour format
       // Console.Read();
        DateTime requiredTime = DateTime.Today.AddHours(7).AddMinutes(00);
        if (DateTime.Now > requiredTime)
        {
            requiredTime = requiredTime.AddDays(1);
        }
        // initialize timer only, do not specify the start time or the interval
        myTimer = new System.Threading.Timer(new TimerCallback(TimerAction));
        // first parameter is the start time and the second parameter is the interval
        // Timeout.Infinite means do not repeat the interval, only start the timer
        myTimer.Change((int)(requiredTime - DateTime.Now).TotalMilliseconds, Timeout.Infinite);
    }

这是TimerAction:

     private void TimerAction(object e)
    {

            // do some work with my webcam(start recording)
            // now, call the set timer method to reset its next call time
    SetTimerValue();
    }
我调用SetTimerValue()在我的表单(Form1):
     public Form1()
    {
        InitializeComponent();

        SetTimerValue();

    } 

但是在我运行应用程序并且计时器到达他的时间后,应用程序关闭。这是我的TimerAction方法和参数(object e) ?

TimerAction的相同动作我有它在button1_Click_1(对象发送者,EventArgs e),它的工作。你能帮我吗?由于

我如何使我的TimerAction工作?(Windows窗体应用程序)

你需要使用正确的计时器,即一个将在UI线程上执行的计时器。