Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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#_Multithreading_Dictionary_Synchronization_Locking - Fatal编程技术网

具有同时读写功能的C#字典

具有同时读写功能的C#字典,c#,multithreading,dictionary,synchronization,locking,C#,Multithreading,Dictionary,Synchronization,Locking,是否有数据结构或算法来实现以下功能 数据以多种方式不断接收到应用程序中 线程并写入字典类型结构。 如果有人想在写字典的时候读字典,而不是 使用锁定,值在值更新之前立即可用 将提供启动 您可以使用查看“使用锁写入字典类型的结构”-我建议将其从需求中删除。这是一个实现细节,只会使您的解决方案集变小。他们的意思可能是它应该是线程安全的。但在无锁数据结构上强制实施锁定有点事与愿违。这些要求看起来更像是一所大学assignment@ColinM我用这种方式表达了这个问题,以便在不打扰任何人了解我的代码细节

是否有数据结构或算法来实现以下功能

数据以多种方式不断接收到应用程序中
线程并写入字典类型结构。 如果有人想在写字典的时候读字典,而不是 使用锁定,值在值更新之前立即可用 将提供启动


您可以使用

查看“使用锁写入字典类型的结构”-我建议将其从需求中删除。这是一个实现细节,只会使您的解决方案集变小。他们的意思可能是它应该是线程安全的。但在无锁数据结构上强制实施锁定有点事与愿违。这些要求看起来更像是一所大学assignment@ColinM我用这种方式表达了这个问题,以便在不打扰任何人了解我的代码细节的情况下提出具体的问题。我向你保证,我不是一名大学生。无论是大学作业还是工作任务,这都是一个合理的开始。这个问题的问题是,它显示了自己在研究问题上的零努力。ConcurrentDictionary提供了同时进行多次读取的功能,但我希望能够在线程写入字典时读取最后可用的值。我认为ConcurrentDictionary不可能做到这一点。@RameshVerma“我认为ConcurrentDictionary不可能做到这一点”是什么让你这么想的?@RameshVerma:“ConcurrentDictionary提供了同时进行多次读取的功能”。实际上,即使是一本普通的字典也提供了同样的功能:“一本字典可以同时支持多个读者,只要集合没有被修改。”()@LucaCremonesi正如我在上面的评论中提到的,我想同时读和写,因此“只要集合没有被修改”“这一部分对我的情况不适用。@RameshVerma:我知道你想同时读和写字典。”。这就是为什么James建议的ConcurrentDictionary类很可能就是您所需要的。我只是指出ConcurrentDictionary类不仅仅提供“同时进行多个读取的功能”。