梦幻西游抓捕概率 梦幻西游异常捕捉器

game50

c#task中的异常怎么捕获

大致有两种方式

1) 调用 Task 的 Wait 方法时使用 try-catch 捕获异常:

梦幻西游抓捕概率 梦幻西游异常捕捉器-第1张图片-随然AIR主题

var testTask = TestAsync(5, -10);try { testTask.Wait();}catch(Exception ex) { Console.WriteLine(ex);}

梦幻西游抓捕概率 梦幻西游异常捕捉器-第2张图片-随然AIR主题

2)在 Task 的 ContinueWith 方法中读取 Task 的 Exception 属性:

var testTask = TestAsync(5, -10);testTask.ContinueWith(task => { if (task.IsFaulted) { Console.WriteLine(task.Exception.GetBaseException()); } else { Console.WriteLine(task.Result); }});

WaitForSingleObject异常怎么捕获

异常应该在线程的执行代码中捕获,在WaitForSingleObject当然无法捕获异常。

梦幻西游抓捕概率 梦幻西游异常捕捉器-第3张图片-随然AIR主题

WaitForSingleObject函数等待线程处理完毕。

如果传入一个0值,则表示超时,这将令WaitForSingleObject马上返回,

并且指出线程是否已经完成。如果线程没有完成,WaitForSingleObject返回WAIT_TIMEOUT。

因而它只能告诉你操作是否完成或超时,你要捕捉错误,应该在线程中