【发布时间】:2022-11-09 04:25:59
【问题描述】:
我正在 Windows 10 机器上使用 Visual Studio 2022 用 C# 编写 Windows 窗体应用程序。该应用程序连接到 Azure 数据库,该数据库运行良好。我的问题是,有时连接需要几秒钟(可能需要 10 秒左右),或者如果出现错误,它会一直到超时限制(通常是 20 到 30 秒),然后再返回任何错误消息。
我正在尝试在此期间向用户提供一些视觉反馈,但应用程序似乎没有处理任何事件,因此我尝试发送的任何类型的反馈在操作完成之前都不会完成(此时这是没有实际意义的)。
关于如何处理这个问题的任何想法?我是否需要在不同的线程上打开数据库,如果需要,每当我使用在不同线程上打开的数据库对象时,这是否会成为整个应用程序其余部分的问题?
我正在尝试一些简单的事情,比如逐渐添加一排点,如下所示:
private void InitCloudDatabase()
{
Boolean success = true;
WorkingTimer.Enabled = true;
WorkingTimer.Start();
try
{
AzureAgDatabase db = new AzureAgDatabase();
db.OpenConnection();
}
catch
{
success = false;
}
WorkingTimer.Stop();
pbCloudResult.Image = (success) ? Properties.Resources.icons8_done_96 :
Properties.Resources.Red_X___Fail;
}
private void WorkingTimer_Tick(object sender, EventArgs e)
{
lblCloud.Text += " .";
if (lblCloud.Text.Contains(" . . . . . . . . . . ."))
{
lblCloud.Text = "Database Connection (Cloud)";
}
}
【问题讨论】:
标签: c# .net multithreading azure-sql-database