在 Task.Run() 中未抛出 AggregateException

香草拉莫斯

我试图从故意失败的 Task.Run() 操作中捕获 AggregateException,但是没有抛出 AggregateException。为什么?

public void EnterWaitingRoom(string val)
{
    try
    {
      Task.Run(() => InvokeHubMethod("HubMethod", 
         new object[] { val }));
    }
    catch (AggregateException ex)
    {
        // This exception is not caught
        throw ex;
    }
}

private async Task<object> InvokeHubMethod(string method, object[] args)
{
    return await Task.Run(() => _hubProxy.Invoke<object>(method, 
        args).Result);
}

我希望抛出异常,但事实并非如此。我也尝试添加 .Wait 并且仍然没有得到异常。请求来自 Windows UI。有任何想法吗。谢谢。

鲁福爵士

这是您async/await从 EventHandler输入的方式

public async void Button_Click(object sender, RoutedEventArgs args )
{
    object result = await EnterWaitingRoom( "whatever" );
}

private Task<object> EnterWaitingRoom(string val)
{
    return InvokeHubMethod(
        "HubMethod",
        new object[] { val } );
}

private Task<object> InvokeHubMethod(string method, object[] args)
{
    return _hubProxy.Invoke<object>(
        method, 
        args);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

未捕获AggregateException?

来自分类Dev

未捕获AggregateException?

来自分类Dev

Task.WhenAll中的AggregateException仅在等待时包含第一个异常

来自分类Dev

在Task.Run中动态

来自分类Dev

使用Task.ContinueWith时如何避免嵌套的AggregateException?

来自分类Dev

Task.Run中的奇怪行为

来自分类Dev

MSBuild在OpenSolutionAsync()的WPF中引发AggregateException

来自分类Dev

Web api 中的 System.AggregateException

来自分类Dev

在取消Task.Run时未捕获到异常

来自分类Dev

替代Task.Run

来自分类Dev

替代Task.Run

来自分类Dev

task.run异步方法中的空引用错误

来自分类Dev

Task.Run在静态初始化程序中

来自分类Dev

将Task.Run用于服务中的同步方法

来自分类Dev

异步/等待与Task.Run在C#中

来自分类Dev

异步方法中的Task.Run()导致线程池不足?

来自分类Dev

task.run中的异步更新列表框

来自分类Dev

将Task.Run用于服务中的同步方法

来自分类Dev

在 Task.Run 中包装 IO 绑定的异步方法

来自分类Dev

Task.Run的抛出异常显示“未从用户代码处理”消息

来自分类Dev

Catching AggregateException

来自分类Dev

捕捉AggregateException

来自分类Dev

Task.FromResult()与Task.Run()

来自分类Dev

触发并忘记异步Task与Task.Run

来自分类Dev

触发并忘记异步Task与Task.Run

来自分类Dev

Nuget软件包-提要(VSTS):试图添加源时抛出异常'System.AggregateException'

来自分类Dev

Polly Retry总是抛出System.AggregateException而不是自定义异常

来自分类Dev

要Task.Run还是不去Task.Run

来自分类Dev

_ = Task.Run与异步void | Task.Run与异步子