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

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

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

在函数ThreadWork中去访问主线程维护的对象。
...全文
222 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
marvelstack 2005-09-03
  • 打赏
  • 举报
回复
下面是一个例子,
http://blog.csdn.net/zhzuo/archive/2004/06/10/22037.aspx
Montaque 2005-09-02
  • 打赏
  • 举报
回复
hi,asp.net 重。多线程之间不能简单的share session。对一你你创建的从page 集成过来的class,并没有在主线程所在的context中。你需要在线程之间share httpcontext来实现。
参考:

http://www.developersdex.com/gurus/code/662.asp 这里有一个简单的例子。
Developerljm 2005-08-29
  • 打赏
  • 举报
回复
怎么了,竟然没有人接题吗?这个问题很难吗?
Developerljm 2005-08-28
  • 打赏
  • 举报
回复
我添加的一个page的子类Class1,然后主线程添加数据到Class1的session中,在ThreadWork函数中访问Class1的session时,就是找不到,异常是:<错误: 发生 {System.Web.HttpException} 类型的异常>。

使用的语句是这样的:在首页中的一个按钮事件中调用:(new Class1()).AddK();

public String AddK()
{
return AddK(true);
}

public String AddK(bool forceCreate)
{

String returnValue = (String)(Session[KEY_CACHE_STR]);

ss = Session;

if (null == returnValue)
{
//
// If there is no cart, create it now
//
returnValue = new String('2',32);
returnValue = "This is a test!";

//
// Save it for later
//
Session.Add(KEY_CACHE_STR, returnValue);
}

return returnValue;
}
然后在ThreadWork函数中:
try
{
// Suppose that we need to run the DTS package here.
// Replace the following line with your code.
//Thread.Sleep(20000);
Class1 cl1 = new Class1();
String str = cl1.AddK();
// Setting successful flag.
//_TaskSuccessful = true;
}
catch (Exception e)
{
// Failed.
//_TaskSuccessful = false;
//_exceptionOccured = e;
}
finally
{
//_//running = false;
}
就是这些了,监视cl1.Session时,异常为::<错误: 发生 {System.Web.HttpException} 类型的异常〉。
linfengcyl 2005-08-27
  • 打赏
  • 举报
回复
MSDN上就有.可以用delegate
cuike519 2005-08-27
  • 打赏
  • 举报
回复
那段代码我试了试,但是你的意思我还是不太清楚。如果维护的是全局的对象,工作线程可以直接访问,因为这部分内存是属于进程的,应该不存在访问的问题。在Web上面应该没有不同,线程都是属于aspnet_wp.exe进程,对于每一个请求会有一个工作线程处理。问题可以再描述的详细些么?
Developerljm 2005-08-27
  • 打赏
  • 举报
回复
我使用的是辅助线程访问主线程中的资源,使用delegate怎么解决呢?
Developerljm 2005-08-27
  • 打赏
  • 举报
回复
对了说一下我访问的是我添加的一个page的子类的session,在ThreadWork函数中访问不到的,这就是就要问题,异常是: <错误: 发生 {System.Web.HttpException} 类型的异常>。
Developerljm 2005-08-27
  • 打赏
  • 举报
回复
请各位针对我提供的那个代码试一下,好吗,而且那个代码有一个特殊的地方就是webform的,这可能也很有不同吧。
zairwolfi 2005-08-27
  • 打赏
  • 举报
回复
rt
Montaque 2005-08-27
  • 打赏
  • 举报
回复
please see this kb:
http://support.microsoft.com/default.aspx?scid=kb;en-us;318607

the same case as you required

110,533

社区成员

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

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

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