FileSystemWatcher 触发后 - 线程池还是专用线程?

2023-12-13

我即将实现原型 FileSystemWatcher 解决方案。我有一个目录来监视文件创建,以及吸收创建的文件并将其插入数据库的任务。粗略地说,这将涉及读取和处理 6 或 7、80 个字符的文本文件,这些文本文件以 150 毫秒的速率出现,每隔几秒发生一次,并且很少需要处理 2MB 的二进制文件。这很可能是一个 24/7 的过程。

根据我对 FileSystemWatcher 对象的了解,最好将其事件排入一个线程中,然后在另一个线程中出队/处理它们。我现在面临的困境是执行处理的线程的更好创建机制是什么。我可以看到的选择是:

  1. 每次我收到 FSW 事件时,我都会手动创建一个新线程(是的,我知道..愚蠢的架构,但我不得不说)。

  2. 每当我收到 FSW 事件时,就会在 CLR 线程池中进行处理

  3. 启动时,创建一个专用的第二个线程进行处理,并使用生产者/消费者模型来处理工作。主线程将请求入队,第二个线程将其出队并执行工作。

我倾向于将第三种方法作为首选方法,因为我知道工作线程始终是必需的 - 并且可能更是如此,因为我对线程池没有感觉。


If you know总是需要第二个线程,而且你也know如果您永远不需要多个工作线程,那么选项三就足够了。

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

FileSystemWatcher 触发后 - 线程池还是专用线程? 的相关文章

  • 使用Physics.Raycast 和Physics2D.Raycast 检测对象上的点击

    我的场景中有一个空的游戏对象 带有 2D 组件盒碰撞器 我将脚本附加到该游戏对象 void OnMouseDown Debug Log clic 但是当我点击我的游戏对象时 没有任何效果 你有什么想法 如何检测我的盒子碰撞器上的点击 使用光
  • C++ 中本地类中的静态成员变量?

    我知道我们不能宣布static本地类中的成员变量 但其原因尚不清楚 那么请问有人可以解释一下吗 另外 为什么我们不能访问非static函数内部定义的变量 内部已经定义了局部类 直接在局部类成员函数中 在下面给出的代码中 int main i
  • Unix网络编程澄清

    我正在翻阅这本经典书籍Unix网络编程 https rads stackoverflow com amzn click com 0139498761 当我偶然发现这个程序时 第 6 8 节 第 179 180 页 include unp h
  • 如何将 #ifdef DEBUG 添加到 Xcode?

    我的项目中有一些代码永远不应该在发布版本中使用 但在测试时很有用 我想做这样的事情 ifdef DEBUG Run my debugging only code endif 在 Xcode 4 中哪里添加 DEBUG 设置 我尝试将其放入
  • 如何修复此错误“GDI+ 中发生一般错误”?

    从默认名称打开图像并以默认名称保存 覆盖它 我需要从 Image Default jpg 制作图形 将其放在 picturebox1 image 上并在 picurebox1 上绘制一些图形 它有效 这不是我的问题 但我无法保存 pictu
  • 单元测试一起运行时失败,单独运行时通过

    所以我的单元测试遇到了一些问题 我不能只是将它们复制并粘贴到这里 但我会尽力而为 问题似乎是 如果我一项一项地运行测试 一切都会按预期进行 但如果我告诉它一起运行测试 则 1 5 将通过 TestMethod public void Obj
  • 如何从 .resx 文件条目获取注释

    资源文件中的字符串有名称 值和注释 The ResXResourceReader类让我可以访问名称和值 有办法看评论吗 你应该能够得到Comment via ResXDataNode class http msdn microsoft co
  • C++中的类查找结构体数组

    我正在尝试创建一个结构数组 它将输入字符串链接到类 如下所示 struct string command CommandPath cPath cPathLookup set an alarm AlarmCommandPath send an
  • 存储来自其他程序的事件

    我想将其他应用程序的事件存储在我自己的应用程序中 事件示例 打开 最小化 Word 或打开文件时 这样的事可能吗 运行程序 http msdn microsoft com en us library ms813609 aspx and 打开
  • ASP.NET:获取自 1970 年 1 月 1 日以来的毫秒数

    我有一个 ASP NET VB NET 日期 我试图获取自 1970 年 1 月 1 日以来的毫秒数 我尝试在 MSDN 中寻找方法 但找不到任何东西 有谁知道如何做到这一点 从 NET 4 6 开始 该方法ToUnixTimeMillis
  • 如何在 Linq 中获得左外连接?

    我的数据库中有两个表 如下所示 顾客 C ID city 1 Dhaka 2 New york 3 London 个人信息 P ID C ID Field value 1 1 First Name Nasir 2 1 Last Name U
  • Rx 中是否有与 Task.ContinueWith 运算符等效的操作?

    Rx 中是否有与 Task ContinueWith 运算符等效的操作 我正在将 Rx 与 Silverlight 一起使用 我正在使用 FromAsyncPattern 方法进行两个 Web 服务调用 并且我想这样做同步地 var o1
  • 如何将整数转换为 void 指针?

    在 C 中使用线程时 我面临警告 警告 从不同大小的整数转换为指针 代码如下 include
  • PlaySound 可在 Visual Studio 中运行,但不能在独立 exe 中运行

    我正在尝试使用 Visual Studio 在 C 中播放 wav 文件 我将文件 my wav 放入项目目录中并使用代码 PlaySound TEXT my wav NULL SND FILENAME SND SYNC 我按下播放按钮 或
  • Visual Studio 中的测试单独成功,但一组失败

    当我在 Visual Studio 中单独运行测试时 它们都顺利通过 然而 当我同时运行所有这些时 有些通过 有些失败 我尝试在每个测试方法之间暂停 1 秒 但没有成功 有任何想法吗 在此先感谢您的帮助 你们可能有一些共享数据 检查正在使用
  • 将 log4net 与 Autofac 结合使用

    我正在尝试将 log4net 与 Autofac 一起使用 我粘贴了这段代码http autofac readthedocs org en latest examples log4net html http autofac readthed
  • Server.MapPath - 给定的物理路径,预期的虚拟路径

    我正在使用这行代码 var files Directory GetFiles Server MapPath E ftproot sales 在文件夹中查找文件 但是我收到错误消息说 给定物理路径但虚拟路径 预期的 我对在 C 中使用 Sys
  • memset 未填充数组

    u32 iterations 5 u32 ecx u32 malloc sizeof u32 iterations memset ecx 0xBAADF00D sizeof u32 iterations printf 8X n ecx 0
  • Linq-to-entities,在一个查询中获取结果+行数

    我已经看到了有关此事的多个问题 但它们已经有 2 年 或更长 的历史了 所以我想知道这方面是否有任何变化 基本思想是填充网格视图并创建自定义分页 所以 我还需要结果和行数 在 SQL 中 这将类似于 SELECT COUNT id Id N
  • 当另一个线程可能设置共享布尔标志(最多一次)时,是否可以读取共享布尔标志而不锁定它?

    我希望我的线程能够更优雅地关闭 因此我尝试实现一个简单的信号机制 我不认为我想要一个完全事件驱动的线程 所以我有一个工作人员有一种方法可以使用关键部分优雅地停止它Monitor 相当于C lock我相信 绘图线程 h class Drawi

随机推荐

  • AWS VPC私有链接-API网关

    我有一个带有公有子网和私有子网的 VPC NLB 部署到私有子网 并且有 5 个侦听器 port 9000 forwarding to targetgroup 01 port 9001 forwarding to targetgroup 0
  • 为什么 nextjs 在构建时会在第一次加载时加载所有页面

    我在我的新网站中使用 nextJS 但 SEO 和网站的速度对我来说非常重要 我想做的是防止加载额外的资源文件 而我不需要它们 例如 当我在主页时 我不需要在后台加载常见问题解答或关于页面的资源 我是否可以阻止网站上的这些额外负载 先感谢您
  • 将自定义对象存储在 NSUserDefaults 中

    我试图按如下方式存储自定义对象 但出现错误 store data NSMutableArray archiveArray NSMutableArray arrayWithCapacity pOrderElements count for i
  • 细胞景观中折叠/扩张的复合节点

    cytoscape js 是否支持折叠 展开复合节点 Eg before collapsing node1 node1 1 node1 2 node1 2 1 崩溃后 node1 用于展开 折叠的 或 符号会很棒 寻找使用复合节点对一组节点
  • DataGridView 不允许用户删除行

    我有一个 DataGridView 如另一个问题 and AllowUserToDeleteRows被设定为true The docs比如说IBindingList AllowRemove还应该设置为true 然而List好像没有那个接口
  • 在 Weld/Seam3 应用程序上启动 POJO

    我试图在我的 Weld Seam3 应用程序中启动 POJO 但运气不佳 我尝试过以下方法 但没有一个起作用 Singleton public class StartupJobs Inject private Logger log publ
  • 扩展方法和 Razor 页面

    我在 app code 中定义了一个扩展方法 如下所示 public static class Extensions public static string Hi this object obj return hi 在剃刀页面 任何东西都
  • jQuery 隐藏元素,同时保留其在页面布局中的空间

    jQuery 中有没有一种方法可以隐藏元素 但在隐藏时不更改 DOM 我隐藏了某个元素 但是当它被隐藏时 它下面的元素会向上移动 我不希望这种事发生 我希望空间保持不变 但元素可以随意显示 隐藏 我可以这样做吗 代替hide use css
  • 匹配整个文档中的第一个元素? [复制]

    这个问题在这里已经有答案了 我想匹配整个文档中的第一个 H1 元素 然而 现在我面临着一个问题 我正在使用以下 CSS 选择器 h1 first child 但是 它与页面上的多个 H1 标签相匹配 我怎样才能让它只匹配第一个 没有这样的选
  • 如何在插入 RichEditBox 的图像中显示调整大小的装饰器?

    我正在尝试将调整大小的装饰器显示到插入到 UWP 应用程序的 RichEditBox 中的图像 到目前为止 我可以使用以下代码插入图像 private async void InsertImage var picker new FileOp
  • 从 Android 中以编程方式创建的父视图中查找子视图

    对于 Android 应用程序 我使用 GridView 并扩展 BaseAdapter 来组织其内容 对于我在扩展 BaseAdapter 类中重写的函数 getView 我创建了一个 LinearLayout 并在其中附加了一个 Ima
  • Android 模拟器和嵌套虚拟化

    我有个问题 我使用 hyper v 虚拟机来隔离开发过程 我在虚拟机上使用Windows 10 但我无法在我的虚拟机上安装虚拟机管理程序 如何在没有 hyper v 的情况下调试 xamarin forms 应用程序 Thanks 快速回答
  • 取消转义 mvc 应用程序返回的转义不可编码字符串的简单方法

    我已经检查了其他类似的问题 他们要么建议使用 WebUtility HtmlDecode 要么逐个字符替换编码部分 或者假设一些已知的正则表达式模式等 他们不回答这个特定的查询 我有一个 C 控制台应用程序 它将一些数据发送到 MVC 应用
  • 如何从 lldb 调试器类型切换到 gdb 调试器类型?

    我已经找了很长一段时间试图找出如何从 lldb 切换到 gdb 但找不到任何关于如何在 Xcode 6 1 中在两者之间切换的信息 我正在尝试调试我的应用程序 如果我使用 gdb 而不是 lldb 我也许能够弄清楚它 但我不知道它是否会对我
  • Material UI - 将图标作为道具传递

    我正在尝试通过 prop 将material ui 图标插入到我的组件中 请让我知道我做错了什么 但是 我不确定如何在 JSX 中传递图标 这是我的无效尝试 这个片段是我尝试将图标作为道具传递给类别组件
  • 元素在拖动后变得随机不可调整大小

    选择并拖动多个元素后 其中一些元素不再可调整大小 调整大小图标从右上角消失 可调整大小的图标保留在旧位置 并且不会移动已移动的元素 要重现 请运行下面的代码 使用套索选择所有元素并拖动选定的元素 之后 调整大小图标将从随机元素中消失 并且这
  • java Playframework GlobalSettings 弃用 onStart

    我遇到了 Playframwork 已弃用的烦人问题GlobalSettings问题 我想把我的 conde 移到里面onStart按照建议的方式 但实际上我无法完成此操作 文档没有任何意义 而且我不知道如何解决这个问题 我花了几天又几天的
  • 如何获取未读 Gmail 邮件的数量(在 Android 上)

    请注意 有一种新方法可以做到这一点 我一直在尝试获取未读 Gmail 邮件的数量 但没有成功 我读了Gmail java and gmail4j从这个问题中取出的两个链接 Android 如何找出用户有多少未读电子邮件 但在阅读了所有这些内
  • 用于精细监控编辑器更改的 Eclipse 插件

    因此 我希望为 Eclipse 4 2 开发一个插件 用于监视用户对其文件所做的编辑 这是我的第一个 Eclipse 插件 为了做好准备 我浏览了 Eclipse 插件开发备忘单 HelloWorld 并花了很多时间在 help eclip
  • FileSystemWatcher 触发后 - 线程池还是专用线程?

    我即将实现原型 FileSystemWatcher 解决方案 我有一个目录来监视文件创建 以及吸收创建的文件并将其插入数据库的任务 粗略地说 这将涉及读取和处理 6 或 7 80 个字符的文本文件 这些文本文件以 150 毫秒的速率出现 每