c# socket如何实现上一条指令发送并收到返回成功后再发送下一条指令呢?

现在在做一个通过socket给下位机发送硬件控制指令的项目,以前使用串口,流程好控制,都是同步的:发送-->等待N毫秒-->接收数据-->处理数据,现在要改成网口,可是socket的发送和接收不在一个方法中,导致我没法实现上一条指令接收完成后(result=true)才允许发送下一条指令,哪位大牛给点思路呢?Thanks

已收到部分小伙伴的建议:
1、封装一个类 就解决一条数据的发送、接收,内部逻辑是异步的。 调用的时候就好像同步调用,一条一条的
2、弄个接口 实现数据分发 你分发到不同业务处理不同的功能。数据接收-->数据队列-->数据分发-->数据处理(你的业务层),这个还不太明白,先在这记录备注一下

socket消息封装一个任务队列,比如消息可以封装成一个CTask类对象,每个请求都是一个CTask对象,每个CTask有唯一的一个ID(static 全局递增即可)值。
相当于上层调用可以一次发送n个请求,但是处理是一个个处理。等上一个请求回来后再调用下一个CTask。