线程接收函数:
//委托
public delegate void PageReloadHandler(int i);
.... public event PageReloadHandler PageReload;
.....
this.PageReload(RecordID);
.....页面接收:private void Page_Load(object sender, System.EventArgs e)
{
Client Client1 = ClientList.SearchOperator(Session["UserName"].ToString());
Client1.clientSocket.PageReload += new PageReloadHandler(WriteXMLdingwei);
}public  void WriteXMLdingwei(int RecordID)
{
try
{  
Response.Write ("<script>alert('"+RecordID.ToString()+"');</script>");  
}
catch
{

}
                  }提示响应在些上下文中不可用

解决方案 »

  1.   

    你在线程中 ,访问Rsponse方法..不可用
    尝试使用 HttpContext,
      

  2.   

    HttpContext的话就显示未将对象引用设置到对象的实例。
      

  3.   

    Response在新的线程里面不可用,给他传进去public delegate void PageReloadHandler(int i, HttpResponse response);public class Client {
        public event PageReloadHandler PageReload;
        public void Do(int RecordID,HttpResponse response) {
            if (this.PageReload != null) {
                this.PageReload(1, response);
            }
        }
    }
        
    Client client = new Client();
    client.PageReload += new PageReloadHandler(client_PageReload);
                
    void client_PageReload(int RecordID, HttpResponse response) {
        response.Write(" <script>alert('" + RecordID.ToString() + "'); </script>");  
    }代码未测试,不知道是否能满足你的要求
      

  4.   

    那是否你的
    WriteXMLdingwei 是要执行的线程
    如果是..请不要在这里使用页面相关元素...
    ,另外你可以建立 公开访问区达到 线程访问目的...
    例如,,synmanager//是个线程类
    寸入Session,或可访问到的地方,进行公开数据读取.
      

  5.   

      this.PageReload(1, response);
    提示使用了未副值的局部变量
      

  6.   

    public delegate void PageReloadHandler(int i, HttpResponse response);public class Client {
        public event PageReloadHandler PageReload;
        public void Do(int RecordID,HttpResponse response) {
            if (this.PageReload != null) {
                this.PageReload(1, response);
            }
        }
    }
    是写在单独的一个CS文件中,是一个接收线程,不是页面的CS文件
      

  7.   

    我这个有点复杂...
    简单点如
    public interface IThread{//实现,Start...Abort...}
    public interface IWorkThread{//工作线程接口}
    public abstract class AbsWorkThread : IWorkThread{//抽象实现,简单可以不实现,但需要建立访问方法,{公共数据区的实现}}
    public class IWorkThread_Import_Material : ATGThread.AbsWorkThread{//实例}//Page
    if (!this.IsPostBack)
     ATGThread.IThread thread = null;
     object o = Session["Import_SynThread"];
    if(o==nul){
    //还需要一些状态控制
    thread = ATGThread.ThreadManager.Create(new IWorkThread_Import_Material(/*参数*/));
    thread.Start()}
    //访问 IWorkThread_Import_Material work = thread.getWork;
     WebUIwork.returnValue;
    }大概就是这个布局..
    详细了..要看具体实现...
      

  8.   


    在asp.net页面中使用线程,主线程已经返回,所有上下文所有对象都是为null的,
    唯一可以共享信息的是session或applicatioin.可以通过另一个页面循环来检测执行结果.
      

  9.   

    Response只有在asp.net页面里才有意义,请用System.Web.HttpContext.Current.Response
    参考
    http://blog.csdn.net/chenguang79/archive/2008/04/07/2256761.aspx
    http://www.cnblogs.com/huazai8204/archive/2007/05/29/763677.html
      

  10.   

    结构问题. 相当不合理...
    你应该是传进去个stringbuilder.执行完以后一次性把stringbuilder里的东西写出来.