Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#-发布者订户解决了这个问题?_C#_Design Patterns_Publish Subscribe - Fatal编程技术网

C#-发布者订户解决了这个问题?

C#-发布者订户解决了这个问题?,c#,design-patterns,publish-subscribe,C#,Design Patterns,Publish Subscribe,假设有不同的科学家(医学)团体提供紧急情况通知单。 当公共游泳池(组)的紧急票到达时,任何时候都只允许一名科学家领取该票,而其他科学家可以或将自动收到通知,告知该特定人员正在处理该票 注意:一个人可以在不同的截止日期下处理多张票 当罚单太复杂而无法解决时,捡到罚单的人可以将其交给同一组或不同组中的其他人。在这种情况下,应立即向其他人宣传此类移交的原因 在极端需要的情况下,单个票据上的任务可以分解并在组之间分配。如果一个任务在小组中被拆分和共享,则共享该任务的人员将不被允许获取任何新任务或处理其他

假设有不同的科学家(医学)团体提供紧急情况通知单。 当公共游泳池(组)的紧急票到达时,任何时候都只允许一名科学家领取该票,而其他科学家可以或将自动收到通知,告知该特定人员正在处理该票

注意:一个人可以在不同的截止日期下处理多张票

当罚单太复杂而无法解决时,捡到罚单的人可以将其交给同一组或不同组中的其他人。在这种情况下,应立即向其他人宣传此类移交的原因

在极端需要的情况下,单个票据上的任务可以分解并在组之间分配。如果一个任务在小组中被拆分和共享,则共享该任务的人员将不被允许获取任何新任务或处理其他现有任务(这样做时,他将被通知正在处理共享任务)


我的问题是:

Is Observer模式是通知服务的最佳选择,或者可以使用其他设计模式来平滑地处理服务(无死锁)。

我觉得消息传递/排队非常合适

根据您实现它的方式,您可以使用

  • ,用于单线程排队或出列。您还可以使用并发访问的锁来保护它
  • ,用于多线程放置和获取
  • MSMQ的排队功能,在使用分布式设计时特别有用
  • SQL Server数据库,在使用分布式设计时同样有趣
对于通知,是的,需要发布/订阅机制。同样,还有一些选择

  • 事件提供了一个基本的发布/订阅机制,可在单个进程中使用
  • 用于基于WCF的分布式使用
当然这是我想要的。我现在6个月大,编程(新手)。非常感谢您提供的详细信息。感谢Frank提供的建议