GLOBAL 另起线程使用Application的时候遇到了问题,请高手帮忙解决一下

问题描述

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应用程序本来就是多线程的应用程序,而且多线程的应用十分广…

学习了

时间: 2024-09-20 07:56:51

GLOBAL 另起线程使用Application的时候遇到了问题,请高手帮忙解决一下的相关文章

多线程 线程同步-多线程同步问题,请高手帮忙分析一下原因

问题描述 多线程同步问题,请高手帮忙分析一下原因 先上代码 public class Banck { private Double[] accounts; public Banck(int n,Double inintPrice) { accounts= new Double[n]; for(int i=0;i<n;i++){ accounts[i]=inintPrice; } } public void transfer(Integer from,Integer to,Double mouny

Server Error in &amp;amp;#x27;/&amp;amp;#x27; Application. 请高手帮忙看看是哪里出问题了呀!感激不尽!急急急~~~

问题描述 ServerErrorin'/akk'Application.--------------------------------------------------------------------------------Objectreferencenotsettoaninstanceofanobject.Description:Anunhandledexceptionoccurredduringtheexecutionofthecurrentwebrequest.Pleaserev

线程-VC6 写windows服务问题,请高手帮忙指点一下

问题描述 VC6 写windows服务问题,请高手帮忙指点一下 UINT _MainThread(LPVOID lparam)//主线程 { cout<<"_MainThread Start!"< CString dspmsg; UINT timeID1 = 0; if (!m_pFSockServer->Create(gListenPort) ) { exitService(GetError(GetLastError())); return -1; } if

在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。 只有将调试器附加到该进程才会引发此异常

问题描述 错误:在可以调用OLE之前,必须将当前线程设置为单线程单元(STA)模式.请确保您的Main函数带有STAThreadAttribute标记.只有将调试器附加到该进程才会引发此异常在用c#编程时遇到这个问题,这是个多线程的下载程序,在调用保存对话框的时候发生,我的Main()函数有[STATThread]标记的,请问哪位能帮帮忙!!! 解决方案 解决方案二:我也遇到这样的问题,LZ是否已经解决?share下解决方案三:帮顶,我也遇到这问题了解决方案四:Threadapp=newThre

利用线程来处理跳转,请大家帮忙解答,因为是初学者,比较弱

问题描述 利用线程来处理跳转,请大家帮忙解答,因为是初学者,比较弱 怎样用实现,当出现欢迎页面(一张图片),会通过线程设置一定时间跳转到主页面? 解决方案 在展示图片的页面 初始化的时候,使用JS 定时器 功能不行吗??

关于java线程同步问题,在线等。请高手指教。

问题描述 如题:JAVA多线程编程.用JAVA写一个多线程程序,写四个线程,对一个变量i同步操作,二个线程对变量i加1,二个线程对变量i减一,输出.我的代码如下:我将对变量i的操作方法add前加了synchronized,但是还是不能实现对变量i的操作同步,请高手指点一下.classResult{Integeri;Result(inta){this.i=newInteger(a);}synchronizedpublicintadd(booleanbool){if(bool){i=newInteg

C# Winform Application.Ilde事件的问题。请帮忙看看,谢谢!

问题描述 C# Winform Application.Ilde事件的问题.请帮忙看看,谢谢! 类似photoshop这样启动很慢的程序,无法直接抓取到软件的主窗体嵌入到panel控件中,通过Application.Ilde事件实现在被嵌程序加载完毕后才将其窗体嵌入panel控件. 但是实际情况,有时候无法抓取到被嵌程序的主窗体,是不是Application.Ilde事件哪个地方写的不对?还是其它的地方写的有问题?请帮忙修改下,谢谢! 代码如下: public Form1() { Initial

WINFORM应用,如何实现等待子线程结束的同时,主界面UI不卡,请高手出招,在线等..............

问题描述 WINFORM应用,如何实现等待子线程结束的同时,主界面UI不卡,请高手出招,在线等..............业务描述有以下耗时业务队列需要按顺序完成UI界面有按钮M,点击M,在处理函数YY中,需要执行以下任务队列{执行耗时业务A(提交给到线程)等待A完成处理结果执行耗时业务B(提交给到线程)等待B完成处理结果执行耗时业务c(提交给到线程)等待c完成处理结果...........}问题:在等待线程N结束的过程中,如何实现不卡UI?如果在函数YY中,直接使用ManualResetEve

Android线程中设置控件的值提示报错的解决方法_Android

本文实例讲述了Android线程中设置控件的值提示报错的解决方法.分享给大家供大家参考,具体如下: 在Android线程中设置控件的值一般会与Handler联合使用,如下: package com.yarin.android.Examples_04_15; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import andro