Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 指定事件的计时器_C# - Fatal编程技术网

C# 指定事件的计时器

C# 指定事件的计时器,c#,C#,我想做一个关机计时器。意思是启动给定时间的计时器,然后将计算机设置为关机。我搜索了internet+stackoverflow of cause,找不到任何有用的东西,既可以用来计时我自己的关机事件,也可以在屏幕上显示它。您尝试了什么 如果希望程序结束时计时器保持活动状态,我建议使用任务规划器。您可以定义执行时间,将其设置为只执行一次,然后删除 否则,您可以在应用程序内创建一个计时器,并将适当的事件绑定到它 两者都需要管理员权限 要显示时间,您需要在窗体上显示一些内容。例如标签。然后您可以执行以

我想做一个关机计时器。意思是启动给定时间的计时器,然后将计算机设置为关机。我搜索了internet+stackoverflow of cause,找不到任何有用的东西,既可以用来计时我自己的关机事件,也可以在屏幕上显示它。

您尝试了什么

如果希望程序结束时计时器保持活动状态,我建议使用任务规划器。您可以定义执行时间,将其设置为只执行一次,然后删除

否则,您可以在应用程序内创建一个计时器,并将适当的事件绑定到它

两者都需要管理员权限

要显示时间,您需要在窗体上显示一些内容。例如标签。然后您可以执行以下操作:

    private void button1_Click(object sender, EventArgs e)
    {
        var x = new Timer();
        x.Tick += new EventHandler((obj, eventargs) => {
            var t = obj as Timer;
            var tag = (int)t.Tag;

            label1.Text = string.Format("{0:0.0}s until shutdown", tag/10d);
            t.Tag = tag - 1;

            if (tag == 0)
            {
                t.Enabled = false;
                MessageBox.Show("I shall initiate the shutdown here!", "Brace yourself!");
                Process.Start("shutdown", "/s /t 10"); // Do the actual shutdown here
            }

        });
        x.Interval = 100;
        x.Tag = 30;
        x.Enabled = true;
    }

如果要中止倒计时,则需要将局部变量提升为窗体的私有字段。这样,您可以随时禁用计时器。

您可以执行.NET表单应用程序。在第页上放置计时器控件。在带有标签控件的页面上显示计数器,向下倒计时。然后一旦完成。使用Shell调用Shutdown命令,或在内部使用WMI或进程调用Shutdown命令。Startshutdown,/s/t 0;您想在应用程序计时器过期时关闭计算机吗?回复:在下面的回答中,计时器没有屏幕显示。如果希望看到计时器倒计时,则需要为其创建自己的显示组件。编辑您的问题,并向我们提供有关您正在尝试执行的操作的更多信息。我不希望程序关闭后计时器处于活动状态。我想自己管理计时器。我试过system.timers.timer、system.threading.timer和第三个。我无法让它显示在屏幕上。