110,535
社区成员
发帖
与我相关
我的任务
分享
interface 平台接口
{
Double[,] 余额 { get; }
Double[,] 委买 { get; set; }
Double[,] 委卖 { get; set; }
void 启动();
Task<Double> 遗留敞口(交易方向 方向, Double 价格, Double 数量);
}
struct okex : 平台接口
{
void 解析(DateTime 时间, String 消息)
void 下单(交易方向 方向, Double 价格, Double 数量)
void 撤单(String 编号)
void 查成交(String 订单号)
}
在okex实例里面,下单,撤单,查成交都是我主动想服务端发送指令之后,等待服务器向我传来的消息再按固定格式解析出结果。这个过程变成了6个步骤:下单=>解析出订单号=>使用订单号撤单=>解析撤单是否成功=>查成交数量=>解析成交数量。怎样才能把这个过程封装成一个异步的Task<Double>,以便通过接口,被主线程调用。struct okex : 平台接口
{
void 解析(DateTime 时间, String 消息)
void 下单(交易方向 方向, Double 价格, Double 数量)
void 撤单(String 编号)
void 查成交(String 订单号)
public async Task<Double> 遗留敞口(交易方向 方向, Double 价格, Double 数量)
{这里怎么封装}
}
ClientWebSocket是异步SendAsync和ReceiveAsync消息的,当Client启动连接后,发送和接收消息都在异步线程上,我要把3个发送动作和对应的3个接受消息封装在一个任务里,能明白吗?