2010-11-01 88 views
1

在主线程中,我打开一个新线程,获取用户新消息的数量(大约需要5秒),第二个线程应该在某个地方保存这个数字。如何在线程之间共享数据?

在主线程中,我应该检查“某处”,如果值存在,我将它显示在页面上。

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

谢谢您的提前!

回答

1

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

1

当多个线程可以读/写数据时,使用临界区来保护对某些数据的访问。使用单例实例来存储数据,全局变量,注册表模式或其他。

0

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