2013-12-12 47 views
1

當我調試代碼:調試時爲什麼代碼意外停止?

void Application_End(object sender, EventArgs e) 
     { 
      //execute when the application closed 
      Application.Lock(); 
      Dictionary<string, VisitorUser> dic = new Dictionary<string, VisitorUser>(); 
      dic = (Dictionary<string, VisitorUser>)Application["MeetUsers"]; 
      if (dic != null) 
      { 
       StringBuilder sbVisitor = new StringBuilder(); 
       foreach (KeyValuePair<string, VisitorUser> key in dic) 
       { 
        VisitorUser vu = key.Value; 
        sbVisitor.Append(" select '"+vu.UserName+"','"+vu.ImgUrl+"','"+vu.NickName+"',"+vu.LoginTime+" union "); 
       } 
       new VipUserBLL().BackUpVisitor(sbVisitor.ToString().Trim().Trim("union".ToCharArray())); 
      } 
      Application.UnLock(); 
     } 

它停止在:

StringBuilder的sbVisitor =新的StringBuilder();

並且不繼續執行。怎麼會發生這種情況有什麼問題?

回答

1

它發生在第一個或後續的循環?

new VipUserBLL().BackUpVisitor..的異步調用?

我不知道爲什麼會發生這種事,但我會重構你這樣的代碼:

try 
{ 
    //execute when the application closed 
    Application.Lock(); 
    Dictionary<string, VisitorUser> dic = new Dictionary<string, VisitorUser>(); 
    dic = (Dictionary<string, VisitorUser>)Application["MeetUsers"]; 
    if (dic != null) 
    { 
     StringBuilder sbVisitor = new StringBuilder(); 
     foreach (KeyValuePair<string, VisitorUser> key in dic) 
     { 
      VisitorUser vu = key.Value; 
      sbVisitor.Append(" select '" + vu.UserName + "','" + vu.ImgUrl + "','" + vu.NickName + "'," + vu.LoginTime + " union "); 
     } 
     new VipUserBLL().BackUpVisitor(sbVisitor.ToString().Trim().Trim("union".ToCharArray())); 
    } 
} 
catch (Exception E) 
{ 
    // log error, you can put a break point here when debugging. 
} 
finally 
{ 
    Application.UnLock(); 
} 
相關問題