首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用控制台应用程序处理多线程或并行任务

如何使用控制台应用程序处理多线程或并行任务
EN

Stack Overflow用户
提问于 2012-03-29 04:31:52
回答 1查看 636关注 0票数 1

我正在编写一个控制台应用程序,它将执行两个任务。

该应用程序将由Windows调度程序在非高峰时间每天运行一次,运行时将执行以下操作:

  • 扫描包含数百个文件的5-6个文件夹,用文件名更新SQL表。
  • 这个应用程序将被另外两个应用程序引用,这些应用程序将利用一个公共方法向SQL表写入异常。异常将更多地涉及业务规则异常。

有一种可能性,即该应用程序将被调度程序调用来执行其指定的任务,同时也会被其他应用程序调用。我将如何设计这个应用程序,以确保没有冲突。我在考虑多线程,并行任务吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-29 13:05:24

你真的不需要做任何事。在这种情况下,操作系统为您处理所有并行性。任务调度程序启动一个进程。其他使用您的应用程序运行在不同的进程中。您可以在单个线程上运行所有处理,这两个任务仍然可以并行进行。

唯一需要注意的是共享资源。例如,如果您在执行此操作时写入硬编码日志文件,则其中一项任务将失败,或者必须等待日志文件变得可写。

除非您做了一些愚蠢的事情,否则SQL访问也应该没有问题;只需确保运行与事务中的任务相关的所有查询,在事务结束时保持数据库的一致状态。

一个潜在的问题来源是假装的可串行化的事务,我喜欢称之为它们。在MSSQL中,它们被称为快照事务。要确保绝对安全,请确保使用可序列化的事务,并准备好在由于冲突导致提交失败时重新尝试整个事件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9919109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档