强制我的控制台应用程序进入睡眠/暂停/休眠状态

本文关键字:暂停 休眠状态 我的 控制台 应用程序 | 更新日期: 2023-09-27 18:34:12

我正在运行一个非线程应用程序,该应用程序负责检查数据库中的文件,更新位置并将文件移动到新目录。

但是,每个星期一-星期四-星期六,包含SQL Server的服务器都会在晚上8:40重新启动。 在晚上 8:30 直到晚上 9:00 或从 8-9 如果这样更容易,我需要我的程序睡觉。

在那些日子里,晚上 8 点(或晚上 8:30),我希望我的程序休眠/等待/暂停直到晚上 9:00(我可以放心地假设重新启动将在此时完成)。

这容易/可能吗? 可以在没有线程的情况下完成吗? 如果我必须使用线程,对于从未使用过线程的人来说

强制我的控制台应用程序进入睡眠/暂停/休眠状态

,实现起来容易吗?

James,Try/Catch和使用并不相互排斥。

如果您决定采用的方法是在 SqlException 上重试,则不应这样做,但可以使用:

Thread.Sleep(1800000);

这将等待 30 分钟。然后,您可以再次尝试通话。我建议不要这样做,但这是一个快速、肮脏的选择。

这可能很有用。

应将应用程序设计为处理数据库连接丢失的情况。您可以对要写入的数据进行批处理,并在重新建立连接后将其全部发送。

请考虑将其重写为服务。也许您想记录连接问题。

try
{
    using (SqlConnection sqlConnection = new SqlConnection(ConnectionProvider.ConnectionString(databaseName)))
    {
        using (SqlCommand command = new SqlCommand())
        {
            if (sqlConnection.State != System.Data.ConnectionState.Open)
            {
                sqlConnection.Open();
            }
            //command.configure etc...
            command.ExecuteNonQuery();
        }
    }
}
catch (SqlException ex)
{
    //retry
}