如何在线程之间共享数据?

时间:2010-11-01 08:42:28

标签: asp.net multithreading

在主线程中,我打开一个新线程,获取用户的新消息数量(大约需要5秒),第二个线程应该在某个地方保存该号码。

在主线程中,我应该检查“某个地方”,如果值存在,我会在页面上显示。

在哪里可以保存第二个线程中的值以从主线程中读取它?该值对每个用户是唯一的,因此我不能使用静态字段。

感谢您提前!

3 个答案:

答案 0 :(得分:1)

当多个线程可以读/写时,使用关键部分来保护对某些数据的访问。使用单例实例来存储数据,全局变量,注册表模式等等。

答案 1 :(得分:1)

您可以使用带有用户ID的静态字典作为键,结果作为值。使用锁保护字典访问。主线程读取值后,您可以从字典中清除它。

答案 2 :(得分:0)

我这样做,我有一个矢量od“ThreadData”元素。 每个启动的线程在启动时都会获取此元素,并且可以更新该数据(由互斥锁保护)。 主线程只是检查元素中的一些标志(ThreadState - Running,Idle,Stopped等)并读取线程更新的其他数据。