线程调用的方法中能不能包含session Request.QueryString 和ViewState

zhuxianzhu 2009-03-27 06:41:22

线程调用的方法中能不能包含session Request.QueryString 和ViewState?

public class TOEXCEL
{
public void aa()
{
这个过程中有
Server.UrlDecode(Request.QueryString("strClassNum")) & ""
dsResult = clsDBProcess.GetDataSet(Session("Server"), Session("Database"), sql)//提示session未宣告

}
}

是不是class TOEXCEL中不能有任何参数传入?
public class bb()
{

protected void cmdToExcel_Click(object sender, System.EventArgs e)
{
这里调用 aa.xx()
方法

Thread threads = default(Thread);
TOEXCEL myDB = new TOEXCEL();
threads = new Thread(new ThreadStart(myDB.aa));
threads.Start();

}

}

...全文
136 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzxap 2009-03-28
  • 打赏
  • 举报
回复
线程要执行的方法不能接受任何参数,如果要传入方法特定条件,可以将方法放在一个类中,在类中定义类的属性,需要时可以设置类的属性,然后用方法调用这些属性以实现方法参数类似的功能。同时,因为生成的线程在主应用程序线程之外运行,.NET Framework提供线程隔离,这时如果要用新的线程操纵主应用程序中的对象便不被允许。最好的办法也是将线程要访问的对象包装在类中。
ghui 2009-03-28
  • 打赏
  • 举报
回复
在线程中,不能使用Request.QueryString 和ViewState。因为这2个对象是附属在 Page 页面对象的,而 Page 页面对象在 Page_Unload() 事件后,就会消失。访问与 Page 对象有关的属性、方法,都会引起错误。但可以访问到与Page对象无关的内存变量

比如你的定义如下:

class bbPage : System.Web.UI.Page
{
int testViewState
{
get
{
return ViewState["xx"]
}
}

int testMemeory = 0;
}

即使你的线程的方法是在 bbPage 中,访问 this.Page 和 testViewState 都会引起错误(有时,由于你的线程执行时间太短,可能会在执行 Page_Unload 事件前就完成,不会出现错误)
访问 testMemeory 变量就不会引起错误。
zhuxianzhu 2009-03-28
  • 打赏
  • 举报
回复
已经public class bb : System.Web.Ui.Page

但还是提示

只有在組態檔或 Page 指示詞中將 enableSessionState 設為 true 時,
才能使用工作階段狀態。同時請確定 System.Web.SessionStateModule
或自訂工作階段狀態模組已包括在應用程式組態的 <configuration>\ <system.web>\ <httpModules> 區段中。


zhuxianzhu 2009-03-28
  • 打赏
  • 举报
回复
怎样设置才可以使用session啊
wuyq11 2009-03-27
  • 打赏
  • 举报
回复
可以使用,添加Web或传page参数
jdxx 2009-03-27
  • 打赏
  • 举报
回复
可以使用Session,z直接继承Page。
public class bb : System.Web.Ui.Page
{

}

ViewState没有试过,应该也是可以的。
zhuxianzhu 2009-03-27
  • 打赏
  • 举报
回复
//提示session未宣告

引用 ui.page就行了
zhuxianzhu 2009-03-27
  • 打赏
  • 举报
回复
提示
只有在組態檔或 Page 指示詞中將 enableSessionState 設為 true 時,
才能使用工作階段狀態。同時請確定 System.Web.SessionStateModule
或自訂工作階段狀態模組已包括在應用程式組態的 <configuration>\<system.web>\<httpModules> 區段中。

dsResult = clsDBProcess.GetDataSet(Session("Server"), Session("Database"), sql)

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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