gpt4 book ai didi

c# - 处理 SignalR .Net 客户端中的异常

转载 作者:行者123 更新时间:2023-11-30 16:59:19 25 4
gpt4 key购买 nike

我有以下客户端方法(.Net 客户端):

public void CallServer()
{
try
{
_hubProxy.Invoke("SomeMethod");
}
catch
{
}
}

我说这是异步的是否正确,因为它会“立即”返回,而不是等待调用完成?如果是这种情况,try..catch 是否会在调用期间实际捕获任何异常,例如如果连接关闭? (如果没有,我该怎么做?)

如果我要添加 .Wait(),这是否会使代码同步,因此它只会在调用完成后返回?

最后,在调用时使用 await 是否有任何优势,或者这是否仅在调用具有返回值的服务器方法时有用?

最佳答案

是的,调用是异步的,因此除了(最有可能)您在实际断开连接时尝试调用方法(该检查应同步运行)之外,您的代码不会捕获任何异常。如果您等待调用,那么是的,您的 try...catch block 将捕获在服务器端方法调用上远程发生的错误(但那里还有其他事情发生,比如您必须允许将详细的错误传给客户)。尽管如此,为了捕获更多相关的一般错误,例如与连接相关的失败,您应该订阅连接对象上的 Error 事件,如下所示:

 hubConnection.Error += ex => Console.WriteLine("Error: {0}", ex.Message);

检查这里: http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-net-client#handleerrors

关于c# - 处理 SignalR .Net 客户端中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23804814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com