C# 为什么调试时代码意外停止?
当我调试代码时:C# 为什么调试时代码意外停止?,c#,C#,当我调试代码时: void Application_End(object sender, EventArgs e) { //execute when the application closed Application.Lock(); Dictionary<string, VisitorUser> dic = new Dictionary<string, VisitorUser>(
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();
}
void应用程序\u结束(对象发送方,事件参数e)
{
//当应用程序关闭时执行
Application.Lock();
Dictionary dic=新字典();
dic=(字典)应用程序[“MeetUsers”];
如果(dic!=null)
{
StringBuilder sbVisitor=新建StringBuilder();
foreach(dic中的KeyValuePair密钥)
{
VisitorUser vu=key.Value;
sbVisitor.Append(“选择“+vu.UserName+”、“+vu.ImgUrl+”、“+vu.昵称+”、“+vu.LoginTime+”union”);
}
新的VipUserBLL().BackUpVisitor(sbVisitor.ToString().Trim().Trim(“union.tocharray());
}
Application.UnLock();
}
它停在:
StringBuilder sbVisitor=新建StringBuilder()
并且不要继续执行。这是怎么发生的问题是什么?它是在第一个循环还是后续循环中发生的
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();
}
试试看
{
//当应用程序关闭时执行
Application.Lock();
Dictionary dic=新字典();
dic=(字典)应用程序[“MeetUsers”];
如果(dic!=null)
{
StringBuilder sbVisitor=新建StringBuilder();
foreach(dic中的KeyValuePair密钥)
{
VisitorUser vu=key.Value;
sbVisitor.Append(“选择“+vu.UserName+”、“+vu.ImgUrl+”、“+vu.昵称+”、“+vu.LoginTime+”union”);
}
新的VipUserBLL().BackUpVisitor(sbVisitor.ToString().Trim().Trim(“union.tocharray());
}
}
捕获(例外E)
{
//日志错误,调试时可以在此处放置断点。
}
最后
{
Application.UnLock();
}
它发生在第一个循环还是后续循环中
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();
}
试试看
{
//当应用程序关闭时执行
Application.Lock();
Dictionary dic=新字典();
dic=(字典)应用程序[“MeetUsers”];
如果(dic!=null)
{
StringBuilder sbVisitor=新建StringBuilder();
foreach(dic中的KeyValuePair密钥)
{
VisitorUser vu=key.Value;
sbVisitor.Append(“选择“+vu.UserName+”、“+vu.ImgUrl+”、“+vu.昵称+”、“+vu.LoginTime+”union”);
}
新的VipUserBLL().BackUpVisitor(sbVisitor.ToString().Trim().Trim(“union.tocharray());
}
}
捕获(例外E)
{
//日志错误,调试时可以在此处放置断点。
}
最后
{
Application.UnLock();
}