.net 应用程序的并行执行
Parallel Execution of a .net application
我想编写一个小型控制台应用程序 (C# 4.0/4.5),用作远程数据库的记录器。可以从众多外围自动化 components/programs 调用所述应用程序,但并非所有这些都是基于 .NET 的。 (调用将通过命令行进行:例如,logme.exe appID、taskID、statusID、msg)
问题:如果这些程序中的两个或多个程序 a) 同时执行记录器,或者 b) 记录器已在别处使用,会发生什么情况?
我不确定执行的基本原理以及我是否应该关注这个。
谢谢
不会发生什么坏事,您的过程只会 运行 多次,就好像您多次双击它一样。只要您不尝试多次写入同一个文件或类似的东西,您应该没问题(在写入远程数据库的情况下,它应该为您处理)。
如果您想要更确定的答案,您必须在此处 post 您的控制台应用程序代码,以便我们可以在没有任何问题时告诉您。
确保可以在多处理器环境中处理共享组件。如果这意味着使用 mutex
来锁定跨多个实例的共享资源,那么就需要这样做。
请参阅 Joe Albahari 的 Basic Synchronization 关于实现不同锁定操作的内容。
我想编写一个小型控制台应用程序 (C# 4.0/4.5),用作远程数据库的记录器。可以从众多外围自动化 components/programs 调用所述应用程序,但并非所有这些都是基于 .NET 的。 (调用将通过命令行进行:例如,logme.exe appID、taskID、statusID、msg)
问题:如果这些程序中的两个或多个程序 a) 同时执行记录器,或者 b) 记录器已在别处使用,会发生什么情况?
我不确定执行的基本原理以及我是否应该关注这个。
谢谢
不会发生什么坏事,您的过程只会 运行 多次,就好像您多次双击它一样。只要您不尝试多次写入同一个文件或类似的东西,您应该没问题(在写入远程数据库的情况下,它应该为您处理)。
如果您想要更确定的答案,您必须在此处 post 您的控制台应用程序代码,以便我们可以在没有任何问题时告诉您。
确保可以在多处理器环境中处理共享组件。如果这意味着使用 mutex
来锁定跨多个实例的共享资源,那么就需要这样做。
请参阅 Joe Albahari 的 Basic Synchronization 关于实现不同锁定操作的内容。