diff --git a/src/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Rpc.cs b/src/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Rpc.cs index 75adfcbb4e3f75e2064bec01bb9ee3f77dc65bb4..8b5d76b40622d9fc110c7c470592083bfc410f09 100644 --- a/src/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Rpc.cs +++ b/src/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Rpc.cs @@ -921,13 +921,19 @@ namespace TouchSocket.Rpc.TouchRpc { using (ByteBlock returnByteBlock = new ByteBlock()) { + var methodName = rpcPackage.MethodName; + var parametersBytes = rpcPackage.ParametersBytes; + rpcPackage.SwitchId(); rpcPackage.MethodName = default; rpcPackage.ParametersBytes = default; rpcPackage.Status = TouchSocketStatus.Success.ToValue(); rpcPackage.Package(returnByteBlock); Send(TouchRpcUtility.P_1200_Invoke_Response, returnByteBlock); + rpcPackage.SwitchId(); + rpcPackage.MethodName = methodName; + rpcPackage.ParametersBytes = parametersBytes; } } diff --git a/src/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor.cs b/src/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor.cs index 0e380e27d5c2a79dbffcdea0f538ab61e50fe6d8..b796f5edac9d2547b5f7ba0db8254c2f53c5a79b 100644 --- a/src/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor.cs +++ b/src/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor.cs @@ -286,7 +286,16 @@ namespace TouchSocket.Rpc.TouchRpc Send(TouchRpcUtility.P_1000_Handshake_Response, byteBlock); IsHandshaked = true; args.Message = "Success"; - OnHandshaked?.Invoke(this, args); + ThreadPool.QueueUserWorkItem((o) => + { + try + { + OnHandshaked?.Invoke(this, args); + } + catch + { + } + }, default); } else { diff --git a/src/TouchSocket/TouchSocket.csproj b/src/TouchSocket/TouchSocket.csproj index e4924551273d9b38076cab859a8cf514a9171b70..cfbb6786a768accff505e28d314bd574d8941e8a 100644 --- a/src/TouchSocket/TouchSocket.csproj +++ b/src/TouchSocket/TouchSocket.csproj @@ -4,7 +4,7 @@ logo.ico True D:\MyStore\13_Doc\Keys\TouchSocket.snk - 1.2.2 + 1.2.3 8.0 若汝棋茗 Copyright © 2023 若汝棋茗