c#例外情况下冻结
自从我开始使用任务以来,我有一种奇怪的行为 这是我的程序课c#例外情况下冻结,c#,.net,task,C#,.net,Task,自从我开始使用任务以来,我有一种奇怪的行为 这是我的程序课 public static class Program { static void Main(string[] args) { var escuchar = Task.Factory.StartNew(RunListener); var escucharComandos = Task.Factory.StartNew(TaconetListener.Escuchar); T
public static class Program
{
static void Main(string[] args)
{
var escuchar = Task.Factory.StartNew(RunListener);
var escucharComandos = Task.Factory.StartNew(TaconetListener.Escuchar);
Task.WaitAll(new[] { escuchar, escucharComandos });
}
}
private static void RunListener()
{
try
{
_udpListener = new UdpListener(UdpSettings.Settings.Puerto);
Console.WriteLine("Escuchando en: {0}", UdpSettings.Settings.Puerto);
while (true)
{
var received = _udpListener.Recibir();
Task.Factory.StartNew(() => Procesar(received));
}
}
catch (Exception ex)
{
Console.WriteLine("Something exploded: " + ex.Message);
}
}
每当在“Procesar”中遇到异常时,都会发生以下情况:
它卡在那里了,不会继续了
如果将指令指针移到下一行,则会出现此错误:
每次运行时都会发生这种情况,而且我看不到引发了哪个异常。在引发异常时启用中断(,),然后将其作为问题的编辑发布在此处。此外,您可以使用
ex.ToString()
而不是ex.Message
在日志中获取更多异常详细信息,例如,它包括异常的类型,并抛出堆栈trace.System.ArgumentOutOfRangeException,但为什么捕获会冻结?