C# VS调试时暂停程序
有没有办法在VS中暂停调试而不设置断点?c控制台应用程序 我注意到,在几次之后,我的程序停止工作,但没有抛出异常,它只是停止做它应该做的事情。 这就是为什么我想知道是否有任何方法可以暂停代码,就像那里有一个断点一样,这样我就能够理解发生了什么 该程序从网站中提取数据,并将其插入MS SQL SERVER数据库(如果有必要) 编辑: 这就是在我的代码中发挥魔力并从网站上获取数据的功能。所有其他东西都只是数据监视器C# VS调试时暂停程序,c#,visual-studio,debugging,C#,Visual Studio,Debugging,有没有办法在VS中暂停调试而不设置断点?c控制台应用程序 我注意到,在几次之后,我的程序停止工作,但没有抛出异常,它只是停止做它应该做的事情。 这就是为什么我想知道是否有任何方法可以暂停代码,就像那里有一个断点一样,这样我就能够理解发生了什么 该程序从网站中提取数据,并将其插入MS SQL SERVER数据库(如果有必要) 编辑: 这就是在我的代码中发挥魔力并从网站上获取数据的功能。所有其他东西都只是数据监视器 public static string PostRequest(strin
public static string PostRequest(string url, string request)
{
var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = request;
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
return result;
}
}
同样,没有抛出异常。
我要求没有断点,因为程序在前500次运行时都很正常。超过这个数字,它就会冻结。你考虑过吗
Console.ReadLine();
或
你考虑过吗
Console.ReadLine();
或
?这条线会像断点一样断开:
System.Diagnostics.Debugger.Break();
这条线将断开,就像它是一个断点一样:
System.Diagnostics.Debugger.Break();
您可以放置System.Diagnostics.Debugger.Break;在某个地方,有一些激活条件可以触发它
例如,您可以让一个线程只检查某些条件
首先,像这样的事情是的,它可以改进,这只是一个想法
void CheckAndDebugBreak()
{
while (true)
{
string fileGuard = ...; // whatever file you can easily create/delete
if (File.Exists(fileGuard))
{
File.Delete(fileGuard); // to avoid hitting the breakpoint next time, recreate the file if needed
System.Diagnostics.Debugger.Break();
}
// some way to stop the infinite loop e.g.
if (somevariableSetOutside)
break;
// wait a while before next check
System.Threading.Thread.Sleep(1000);
}
}
您可以放置System.Diagnostics.Debugger.Break;在某个地方,有一些激活条件可以触发它
例如,您可以让一个线程只检查某些条件
首先,像这样的事情是的,它可以改进,这只是一个想法
void CheckAndDebugBreak()
{
while (true)
{
string fileGuard = ...; // whatever file you can easily create/delete
if (File.Exists(fileGuard))
{
File.Delete(fileGuard); // to avoid hitting the breakpoint next time, recreate the file if needed
System.Diagnostics.Debugger.Break();
}
// some way to stop the infinite loop e.g.
if (somevariableSetOutside)
break;
// wait a while before next check
System.Threading.Thread.Sleep(1000);
}
}
如果您只是因为不想手动循环而避免断点,则可以尝试以下方法: 在函数的开头设置一个断点。 将鼠标悬停在断点上并选择“齿轮”符号 选中“条件”框 从第一个下拉列表中选择命中计数,然后设置一个值 这将在这么多个周期后停止断点上的执行。因此,您可以运行500个周期,然后在断点处暂停
此外,您还可以创建一个Count变量来计算周期数,并将每个周期的数字输出到控制台,以确定它完成了多少个周期,以及数字是否一致。如果您只是因为不想手动循环而避免断点,您可以尝试以下方法: 在函数的开头设置一个断点。 将鼠标悬停在断点上并选择“齿轮”符号 选中“条件”框 从第一个下拉列表中选择命中计数,然后设置一个值 这将在这么多个周期后停止断点上的执行。因此,您可以运行500个周期,然后在断点处暂停
此外,您还可以创建一个Count变量来计算周期,并将每个周期的数字输出到控制台,以确定它到底完成了多少个周期,以及数字是否一致。选择菜单“调试-全部中断”,以在正在执行的应用程序中中断下一行可用代码。有关更多信息,请参阅。选择菜单“调试-全部中断”,以在正在运行的应用程序中中断下一行可用代码。有关更多信息,请参阅。能否发布部分代码,以便我们了解它的功能?此外,如果还没有try/catch块,可以在代码周围放置try/catch块,并在catch块中放置断点。这样你就可以看到什么是例外了这听起来很像一个。在VisualStudio中调试时,如果您现在没有看到异常捕获,则可以启用更多异常捕获。你的代码是多线程的吗?另外,除非你有一个非常彻底的日志系统,否则断点是在程序运行时检查程序状态的唯一方法。很难判断你在这里想要完成什么。你停止做它应该做的是什么意思?它只是冻结了吗?它会崩溃吗?但是,如果您的代码被卡住,则在VS up top中靠近其他调试控件(如stop)的位置会有一个暂停按钮。您是否可以发布部分代码,以便我们看到它在做什么?此外,如果还没有try/catch块,可以在代码周围放置try/catch块,并在catch块中放置断点。这样你就可以看到什么是例外了这听起来很像一个。在VisualStudio中调试时,如果您现在没有看到异常捕获,则可以启用更多异常捕获。你的代码是多线程的吗?另外,除非你有一个非常彻底的日志系统,否则断点是在程序运行时检查程序状态的唯一方法。很难判断你在这里想要完成什么。你停止做它应该做的是什么意思?它只是冻结了吗?它会崩溃吗?但是,如果代码被卡住,则在VS up top中靠近其他调试控件(如stop)的位置会有一个暂停按钮。