谁来解决这个问题,多线程间数据共享问题,100高分相送

Developerljm 2005-08-26 10:40:12
主线程维护的一个对象内容,如何让辅助线程访问到?

下面是一个多线程的例子,你们可以在这个上面测试:
http://blog.joycode.com/felix/articles/47292.aspx

在函数ThreadWork中去访问主线程维护的对象。
...全文
289 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
gmq517 2005-09-23
  • 打赏
  • 举报
回复
看我的方法,可要多给点分阿

一、创建一个数据类,用来存储你需要的数据,并声明数据成员为静态变量
二、在两个类中分别定义这个类的一个实例,
三、在一个线程里面负值,另一个线程就可以使用了,
主意:在使用的时候,调用的先后顺序,和使用的时候对数据成员加锁
gmq517 2005-09-21
  • 打赏
  • 举报
回复
哪有那么简单,简单我也不用找了,等我找到方法告诉你啊,
Developerljm 2005-08-29
  • 打赏
  • 举报
回复
怎么了,竟然没有人接题吗?这个问题很难吗?
linfengcyl 2005-08-27
  • 打赏
  • 举报
回复
同意楼上.
Developerljm 2005-08-27
  • 打赏
  • 举报
回复
对了说一下我访问的是我添加的一个page的子类的session,在ThreadWork函数中访问不到的,这就是就要问题,异常是: <错误: 发生 {System.Web.HttpException} 类型的异常>。
Developerljm 2005-08-27
  • 打赏
  • 举报
回复
请各位针对我提供的那个代码试一下,好吗,而且那个代码有一个特殊的地方就是webform的,这可能也很有不同吧。
exboy 2005-08-27
  • 打赏
  • 举报
回复
可以给LengthyTask类添加一个 Page 属性,然后在NEW这个对象的时候,把面的实例传递给这个类,这样就可以使用这个属性来访问页面上的内容了

在页面使用线程可能会出现很多问题,如果网站的访问量大的话,服务器很容易被DOWN掉
还有就是在子线程线没有结束之前,主线程一定不能结束,因为主线程结束时,会把所有相关的资源给清理掉,这时子线程在访问数据的时候就会出错。
JasonHeung 2005-08-27
  • 打赏
  • 举报
回复
辅助线程定义在一个类中,在该类中定义和主线程的交互接口,可以用引用、代理、事件等。
lovebanyi 2005-08-27
  • 打赏
  • 举报
回复
我知道的静态变量可以被访问到。如果不修改哪就没有问题了。如果有修改的情况出现,就要先锁定。修改完了。解锁。。互拆
syeerzy 2005-08-27
  • 打赏
  • 举报
回复
如果是只读访问,只要可以访问(权限许可,否则需要构个访问器),从上下文可以获取主线程的句柄,通过这个实例化一下那个类,就可以不需要借助静态变量(因为有些情况下那个要访问的东西根本就不能把它静态了)。

如果可以静态掉那就没那么多麻烦事了。

不过如果要写的话记得lock 和unlock就行了。
salmon230 2005-08-27
  • 打赏
  • 举报
回复
学习
xamaizi 2005-08-27
  • 打赏
  • 举报
回复
静态变量
Developerljm 2005-08-27
  • 打赏
  • 举报
回复
to JasonHeung(拥有一切也不过就这样笑着哭) ,针对我的这个问题该怎么解决呢?
请指教
zairwolfi 2005-08-27
  • 打赏
  • 举报
回复
rt

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧