protected virtual async Task ReadResultAsync(IFiberRw fiberRw) { var id = await fiberRw.ReadInt64(); if (await fiberRw.ReadBoolean()) //is error { AsyncBackResult(new Result() { Id = id, ErrorId = await fiberRw.ReadInt32(), ErrorMsg = await fiberRw.ReadString() }); } else { var count = await fiberRw.ReadInt32(); List <byte[]> args = new List <byte[]>(count); for (int i = 0; i < count; i++) { args.Add(await fiberRw.ReadArray()); } AsyncBackResult(new Result(args) { Id = id }); } }