Windows服务+ Windows窗体应用程序.一个数据库.关于并发的建议

本文关键字:Windows 于并发 并发 数据库 应用程序 一个 服务 窗体 | 更新日期: 2023-09-27 18:09:18

我有SQL Server数据库的信息文件-我说的是自定义属性。这些是每个文件的类别和描述。

Windows窗体应用程序是为用户准备的。但我也会做一个Windows服务来跟踪文件的任何变化。如果发生更改(重命名、移动、删除),服务必须相应地更新相同的数据库。我认为它应该立即完成,没有任何延迟。

现在这将是我第一次制作WS加上第一次我将不得不处理并发(理论上我知道线程等)。

:

  • 首先,如果一个进程正在更新数据库,另一个进程可能同时使用它是OK的吗?你需要首先处理这种情况吗?(可能,fx在我们的日常"用户生活"中,当另一个进程正在使用一个文件时,我们不能修改它)

  • 这两个共享一个数据源的想法好吗?

  • 如果是,那么如何处理并发?我可以将WCF用于两者之间的消息,但是解决方案是否与WCF有关?因为我也将第一次使用这个:d

任何帮助都是感激的。感谢您的宝贵时间!

Windows服务+ Windows窗体应用程序.一个数据库.关于并发的建议

因为MS SQL是事务性的,所以没有什么大不了的。你只需要注意那些可能被一个进程读取和更新的数据——在那里可能需要使用Transaction作用域(这是一个。net类;)。

从软件体系结构的角度来看,您应该考虑使用三层而不是两层的应用程序:

两层

:
实际上,您的系统与持久层(DB)直接与客户端通信

三层

:<->逻辑层(例如WCF-Service处理应用逻辑)<->客户端(Service和Forms -触发应用逻辑和显示结果)

当涉及到并发性时,它将是非常直接的。MSSQL数据库引擎几乎可以处理所有这些(例如锁定和共享)。此外,如果您利用SqlCommandBuilder来构建语句,语句将自动使用乐观并发。

至于Windows服务和它如何得到通知,使用FileSystemWatcher,它将更有效,你不会在本地机器上发布一些服务端口。

我通常会给你一些好的代码示例,但我从我的手机回答这个。

相关文章: