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

2024-03-23

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

Windows 窗体应用程序是供用户使用的。但我还将创建一个 Windows 服务来跟踪文件的任何更改。如果发生更改(重命名、移动、删除),服务必须相应地更新同一数据库。我认为应该立即采取行动,不得有任何拖延。

现在这将是我第一次制作 WS,而且我第一次必须处理并发(理论上我了解线程等)。

So:

  • 首先,如果一个进程正在更新另一个进程可能同时使用的数据库,这可以吗?您需要首先处理这种情况吗? (可能,在我们的日常“用户生活”中,当文件被另一个进程使用时,我们无法修改该文件)

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

  • 如果是,那么如何处理并发?我可以使用 WCF 来处理两者之间的消息,但是解决方案与 WCF 有什么关系吗?因为我也将第一次使用它:D。

任何帮助表示赞赏。预先感谢您的宝贵时间!


由于 MS SQL 是事务性的,所以不会有什么大问题。您只需要注意可能由一个进程读取和更新的数据 - 在那里可能需要使用事务范围(这是一个 .NET 类;))。

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

Two Tier:
本质上是您的系统与持久层(DB)直接与客户端通信

三层: 持久层 逻辑层(例如处理应用程序逻辑的 WCF 服务) 客户端(服务和表单 - 触发应用程序逻辑并显示结果)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • 带有外键的 Django 表单

    我有一个用户可以拥有多本书的场景 我可以为用户和书籍创建两个不同的模型 并使用外键将它们关联起来 或者一对多是正确的方式 我已经为用户模型创建了一个 django 表单 但是当我这样做时 form as p 在模板中 仅显示用户模型字段 而
  • 如何在android中将 2021-07-06T19:27:46.811+0530 格式转换为 d MMM yyyy, hh:mm aaa 这种格式

    2021 07 06T19 27 46 811 0530 gt 当前值作为字符串 我想转换为 05 07 2021 06 45 am 这种格式 提前致谢 Use java time import java time OffsetDateTi
  • 获取 PostgreSQL 中今天生日的所有条目

    我有以下查询 我需要实现一个需要发送给今天生日的所有客户的邮件程序 这种情况每天都会发生 现在我需要实现的只是使用 Postgres SQL 查询选择生日客户端 而不是在 PHP 中过滤它们 数据库中存储的日期格式为 YYYY MM DD
  • vb.net 向存储过程发送参数

    你好 这是我在 vb net 中使用 ms Visual Studio 2010 的第一个项目 我想创建一个可以将参数发送到 transact sql 数据库中的存储过程的类 我知道如何在 vb 6 中执行此操作 但我不会确定这是否是在这里
  • 为什么我应该使用 (y,x) 而不是 (x,y) 来访问 opencv 中的像素?

    我必须使用 openCV 访问图像中的像素 但一开始我无法访问 因为 python 告诉我我想要访问的值超出范围 然后我搜索了这个错误 我发现我应该使用访问像素image y x 代替image x y 我在这个页面的评论中找到了这条信息
  • 自定义 jquery ui 日期选择器

    是否可以完全定制jquery ui http jqueryui com home日期选择器以匹配您的网站主题 包括标题 按钮和图像的位置 如果可能的话 应该采取什么方法 该怎么办呢 我想 几乎 完全重新设计它 还有哪些其他可能的选择 我尝试
  • 未处理的 Win32 异常

    在运行时 当 myApp exe 崩溃时 我收到 未处理的 Win32 异常 但我如何知道发生了哪个异常 哪里出了问题 对于 Native C 应用程序 请参阅我之前的回答 在 Windows 上检测 重定向核心转储 当软件崩溃时 http
  • 无法使用“PhpParser\Node\Scalar\String”作为类名,因为它是保留的

    当我使用 Composer 安装 Laravel 5 时 出现以下错误 无法按原样使用 PhpParser Node Scalar String 作为类名 保留在 Applications XAMPP xamppfiles htdocs l
  • ggplot2 在函数 R 内时似乎不起作用 [重复]

    这个问题在这里已经有答案了 我对 R 有点陌生 我一直在尝试将 R 脚本包装为函数 以便我可以从 Rserve 调用它 有谁知道为什么 ggplot2 不能在函数内部工作但在函数外部却工作得很好 png polarity png ggplo
  • 围绕其中心点旋转 UIImageView?

    我在 UIImageView 中有一个透明的 png self myImage 我想绕其中心点旋转 代码应该非常简单 self myImage layer setAnchorPoint CGPointMake 0 5 0 5 UIView
  • 在 Win64 下将 SOCKET 转换为 int 安全吗?

    我正在开发 POSIX C 程序的 Windows 端口 问题是标准 POSIX 函数 如accept 或bind 期望 int 作为第一个参数 而其WinSock 对应函数则使用 SOCKET 当编译为 32 位时 一切都很好 因为两者都
  • 获取图像大小而不将图像加载到内存中

    据我所知 您可以通过以下方式使用 PIL 获取图像大小 from PIL import Image im Image open image filename width height im size 但是 我想获取图像的宽度和高度witho
  • 使用 GStreamer 将视频转换为 WebM

    文档用于GStreamer令人困惑 这仍然不是诉诸的借口StackOverflow com 但仍然 是什么GStreamer命令行将任何视频文件 任何格式 转换为 WebM WebM 音频 这是我能找到的唯一带有示例的文档 http gst
  • 使用随机字段解析 JSON (java)

    我想转换一个JSON文件到一个CSV file My JSON文件来自DataBase存储在Firebase并且有这样的结构 PATIENT LbhwHC7Y6 umc age 31 name Phoebe LbhwTFJ6xjEf age
  • 更改 PHP 文件上传的默认临时目录

    我正在本地制作一个网站 允许上传 pdf 文件 当这些文件在本地上传时 它们会转到C xampp tmp但是当我在大学服务器上托管该网站时 我无权访问临时目录 有什么方法可以更改文件的默认临时位置吗 提前致谢 戴夫 可以使用以下命令配置上传
  • 使用 GtkAda 发出信号

    我担心的是我创建了一个回调函数 它应该显示Gtk Entry当我们点击Gtk Button但当我点击按钮时什么也没有发生 我不明白 File ads Package Test is Type T Test is record Contene
  • 在 EasyPHP{WAMP} 中设置 root 密码后无法从 phpMyAdmin 访问 MySQL

    首次启动 MySQL 成功设置后 出于安全原因 页面提示我设置 ROOT 密码 设置密码后 我无法再访问 MySQL 错误是 1045 Access denied for user root localhost using password
  • Asift 和 openCV?

    opencv 允许使用 ASIFT 吗 http www ipol im pub algo my affine sift http www ipol im pub algo my affine sift 作者发布了c 所以我相信将其实现到o
  • 弹性框文本项溢出

    谁能解释一下为什么包含文本的列的宽度没有正确计算以完全包含每列中的文本 在 Firefox 和 Chrome 上 第一列和第三列中的文本不适合这些框 但令人惊讶的是 这些框在 IE 11 中的大小正确 这是浏览器错误吗 box displa
  • Windows 服务 + Windows 窗体应用程序。一个数据库。关于并发的建议

    我有包含文件信息的 SQL Server 数据库 我正在谈论自定义属性 这些是每个文件的类别和描述 Windows 窗体应用程序是供用户使用的 但我还将创建一个 Windows 服务来跟踪文件的任何更改 如果发生更改 重命名 移动 删除 服