C# 经常检查SQL Server连接的标准方法是什么?

C# 经常检查SQL Server连接的标准方法是什么?,c#,sql-server,wpf,connection,C#,Sql Server,Wpf,Connection,在WPF应用程序中,我在try-catch结构中使用LINQ to SQL查询来处理异常,以防DB服务器连接出现问题 问题是-我有一些查询是在计时器轮询的基础上执行的。所以,若连接失败,我会尝试多次长时间的查询,UI会冻结 标准的出路是什么?我想用一种简单的轻量级方法不断检查db连接是否正常,然后对我的所有查询执行所有操作。为什么不将轮询查询移动到它们自己的线程上,这样它们就不会冻结UI?然后,他们可以向主UI线程发送消息或事件,您可以在主UI线程中处理它(弹出错误消息等)。在backgroun

在WPF应用程序中,我在try-catch结构中使用LINQ to SQL查询来处理异常,以防DB服务器连接出现问题

问题是-我有一些查询是在计时器轮询的基础上执行的。所以,若连接失败,我会尝试多次长时间的查询,UI会冻结


标准的出路是什么?我想用一种简单的轻量级方法不断检查db连接是否正常,然后对我的所有查询执行所有操作。

为什么不将轮询查询移动到它们自己的线程上,这样它们就不会冻结UI?然后,他们可以向主UI线程发送消息或事件,您可以在主UI线程中处理它(弹出错误消息等)。

在backgroundworker线程中运行它,或者完全在单独的线程中运行它

工作不应该在UI线程上完成,除非它直接与UI本身相关。BackgroundWorker是一个对象,它使这样的线程处理变得非常容易。有关教程,请参见。它解释了后台工作人员的工作以及如何使用它


如果您确实在UI线程上工作,那么您正在窃取UI的CPU周期,这会让用户觉得它很慢。在自己的线程上运行工作,然后更新UI是最好的方法。这样,用户可以做其他事情,用户界面也能正确响应。

谢谢!关于链接上的教程文章是关于Windows窗体应用程序的,请告诉我,BackgroundWorker也会为WPF应用程序工作吗?