日期:2014-05-18  浏览次数:20396 次

asp.net使用线程遇到的问题?????????
常识在asp.net中使用线程
private   void   Page_Load(object   sender,   System.EventArgs   e)
{
lock(this)//确保临界区被一个Thread所占用  
{  
Thread   thread=new   Thread(new   ThreadStart(dowork));  
thread.Start();                                                  
}  
}

public   void   dowork()  
{  
SqlConnection   conn=new   SqlConnection(System.Configuration.ConfigurationSettings.AppSettings[ "mconn "]);  
SqlCommand   cmd=new   SqlCommand( "Insert   Into   biao1   (na)values( 'test ') ",conn);  
conn.Open();  
for(int   i=0;i <50;i++){cmd.ExecuteNonQuery();}  
conn.Close();  
}  
如果是这样的话就没有错误
但是如果我把
dowork()里面替换成
HttpContext.Current.Response.Write( "Thread   started.   Main   done. ");
也就是
public   void   dowork()  
{  
HttpContext.Current.Response.Write( "Thread   started.   Main   done. ");
}  
就提示

未处理的“System.NullReferenceException”类型的异常出现在   未知模块   中。
其他信息:   未将对象引用设置到对象的实例
没有   可用于当前位置的源代码

这是为什么???

------解决方案--------------------
asp.net 下最好不要用多线程

------解决方案--------------------
可以用 似乎调用时要用个委托吧
------解决方案--------------------
不是相同的进程赵成的