我写了一个利用多线程进行下载远程服务器图片的功能。大体代码如下:protected void Page_Load(object sender, EventArgs e)
{
    Thread thread = new Thread(new ThreadStart(IniServerImg));
    thread.Start();} private void IniServerImg()
  {
       foreach (var freq in freqList)
      {
          UpdateServerImg(stockCode, freq);
      }  }private void UpdateServerImg(string strStockCode,strFreq)
{
   string strUrl="~/image/a.jpg"; 该图片可能存在也可能不存在
   strUrl=HttpContext.Current.Server.MapPath(strUrl);   //该地方会出现空引用异常,但如果我去掉多线程的话直接调用该方法则一切都正常
}

解决方案 »

  1.   

    加一行代码判断private void UpdateServerImg(string strStockCode,strFreq)
    {
       string strUrl="~/image/a.jpg"; 该图片可能存在也可能不存在
       if (strUrl!="")
       {
           strUrl=HttpContext.Current.Server.MapPath(strUrl);   
       }
    }
      

  2.   

    strUrl本身可确定非Null或""那个有影响吗?
      

  3.   

    听公司一个高人讲了一个原理---------asp.net线程主要是aspnet线程。多线程实际上不是以aspnet线程运行的。而Httpcontext.Current.Server则是建议在aspnet线程基础上。所以多线程内没有该实例