//公开方法 /// <summary> /// 异步开始一个远程调用 /// </summary> /// <param name="methord">方法</param> /// <param name="Params">参数数组</param> /// <returns></returns> public async Task <JsonRpcRes> JsonRpcAsync(string methord, ArrayList Params) { JsonRpcReq NewTask = new JsonRpcReq(methord, Idlist++, Params); Send(NewTask);//这一行应该调用控制器的方法执行NewTask请求 await Task.Run(() => { while (!RespondList.ContainsKey(NewTask.Id)) { Thread.Sleep(500); } }); return(RespondList[NewTask.Id]); }
/// <summary> /// 同步开始一个远程调用 /// </summary> /// <param name="methord">方法</param> /// <param name="Params">参数数组</param> /// <returns></returns> public JsonRpcRes JsonRpc(string methord, ArrayList Params) { JsonRpcReq NewTask = new JsonRpcReq(methord, Idlist++, Params); Send(NewTask);//这一行应该调用控制器的方法执行NewTask请求 while (!RespondList.ContainsKey(NewTask.Id)) { Thread.Sleep(500); } var s = RespondList[NewTask.Id]; RespondList.Remove(NewTask.Id); return(s); }
public Queue <JsonRpcRes> NoticeList = new Queue <JsonRpcRes>(); //通知列表 //私有方法 private void Send(JsonRpcReq SendMessage)//发消息 { ws.Send(JsonConvert.SerializeObject(SendMessage)); }