问题描述
global代码是这样的usingProject.Bll.Account.SystemSend;protectedvoidApplication_Start(objectsender,EventArgse){SystemSendSystemSend=newSystemSend();ThreadThd1=newThread(newThreadStart(SystemSend.Call_Get_MessSend));Thd1.Start();}SystemSend类代码publicvoidCall_Get_MessSend(){HttpContext.Current.Application["WindowPrompt"]=",";//就这里提示我错误,提示HttpContext为null难道给application赋值也出错么请高手指点一下该怎么解决}
解决方案
解决方案二:
感觉像因为我另起了个线程然后使用APPLICATION就出现的错误如果不另起线程就没问题,但是必须起两个线程期待高手解决!谢谢
解决方案三:
在web程序非主线程中获取HttpContext肯定获取不到的。先说说为什么必须在新线程中给Application赋值?在Global的Application_Start函数的意义就是在启动程序时才运行一次,每次启动也就运行一次,你又可比新开一个线程去给Application赋值呢?
解决方案四:
global代码是这样的usingProject.Bll.Account.SystemSend;protectedvoidApplication_Start(objectsender,EventArgse){SystemSendSystemSend=newSystemSend();ThreadThd1=newThread(newParameterizedThreadStart(SystemSend.Call_Get_MessSend));Thd1.Start();}SystemSend类代码publicvoidCall_Get_MessSend(objectparam){HttpApplicationapp=paramasHttpApplication;app["WindowPrompt"]=",";//就这里提示我错误,提示HttpContext为null难道给application赋值也出错么请高手指点一下该怎么解决}
解决方案五:
如果真有需要,就从主线程传进来
解决方案六:
publicstringGetAppState(stringkey){HttpApplicationStateApplication=HttpContext.Current.Application;if(Application[key]==null){returnnull;}elseif(Application[key]isSystem.String){returnApplication[key].ToString();}else{returnnull;}}
解决方案七:
哦,忘记一点globalusingProject.Bll.Account.SystemSend;protectedvoidApplication_Start(objectsender,EventArgse){SystemSendSystemSend=newSystemSend();ThreadThd1=newThread(newParameterizedThreadStart(SystemSend.Call_Get_MessSend));Thd1.Start(this);//把Application传过去}SystemSend类代码publicvoidCall_Get_MessSend(objectparam){HttpApplicationapp=paramasHttpApplication;app["WindowPrompt"]=",";}
解决方案八:
to楼上:以参数的形式把Application传到线程中去赋值,与在主线程中直接给Application赋值,两者都是同一个Application,实在想不明白如何多此一举有什么用?to楼主:在Web应用程序中一般情况下不支持使用多线程。
解决方案九:
引用7楼showlie的回复:
to楼上:以参数的形式把Application传到线程中去赋值,与在主线程中直接给Application赋值,两者都是同一个Application,实在想不明白如何多此一举有什么用?一个变量倒还可以直接在外面传进去,那如果2个,3个呢?所以干脆把Application传进去。to楼主:在Web应用程序中一般情况下不支持使用多线程。Web应用程序本来就是多线程的应用程序,而且多线程的应用十分广泛。
解决方案十:
引用8楼jzywh的回复:
引用7楼showlie的回复:to楼上:以参数的形式把Application传到线程中去赋值,与在主线程中直接给Application赋值,两者都是同一个Application,实在想不明白如何多此一举有什么用?一个变量倒还可以直接在外面传进去,那如果2个,3个呢?所以干脆把Application传进去。to楼主:在Web应用程序中一般情况下不支持使用多线程。Web应用程序本来就是多线程的应用程序,而且多线程的应用十分广…
学习了