线程接收函数:
//委托
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
{
}
}提示响应在些上下文中不可用
//委托
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
{
}
}提示响应在些上下文中不可用
尝试使用 HttpContext,
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>");
}代码未测试,不知道是否能满足你的要求
WriteXMLdingwei 是要执行的线程
如果是..请不要在这里使用页面相关元素...
,另外你可以建立 公开访问区达到 线程访问目的...
例如,,synmanager//是个线程类
寸入Session,或可访问到的地方,进行公开数据读取.
提示使用了未副值的局部变量
public event PageReloadHandler PageReload;
public void Do(int RecordID,HttpResponse response) {
if (this.PageReload != null) {
this.PageReload(1, response);
}
}
}
是写在单独的一个CS文件中,是一个接收线程,不是页面的CS文件
简单点如
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;
}大概就是这个布局..
详细了..要看具体实现...
在asp.net页面中使用线程,主线程已经返回,所有上下文所有对象都是为null的,
唯一可以共享信息的是session或applicatioin.可以通过另一个页面循环来检测执行结果.
参考
http://blog.csdn.net/chenguang79/archive/2008/04/07/2256761.aspx
http://www.cnblogs.com/huazai8204/archive/2007/05/29/763677.html
你应该是传进去个stringbuilder.执行完以后一次性把stringbuilder里的东西写出来.