在 WPF 应用程序中,我在 try - catch 结构中使用 LINQ to SQL 查询来处理异常,以防数据库服务器连接出现问题。
问题是 - 我有一些查询是在定时器轮询的基础上执行的。因此,如果连接失败,我会尝试多次长时间查询并且 UI 会卡住。
标准的出路是什么?我希望有一种简单的轻量级方法来不断检查数据库连接是否正常,然后对我的所有查询执行所有操作。
最佳答案
在后台工作线程或完全独立的线程中运行它。
不应在 UI 线程上完成工作,除非它与 UI 本身直接相关。 BackgroundWorker 是一个对象,它使像这样的线程处理变得非常容易。有关教程,请参阅 this entry .它解释了后台工作人员的作用以及如何使用它。
如果您确实在 UI 线程上工作,您就是在窃取 UI 的 CPU 周期,导致用户感觉它很慢。在它自己的线程上运行工作,然后更新 UI 是最好的方法。这样用户就可以做其他事情并且 UI 会正确响应。
关于c# - 不断检查 SQL Server 连接的标准方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2103522/