private static void ReceiveCallback(IAsyncResult ar) { AsyncDataState <byte[], byte[]> state = ar.AsyncState as AsyncDataState <byte[], byte[]>; try { int size = state.Socket.EndReceive(ar); byte[] result = null; if (size > 0) { result = new byte[size]; Array.Copy(state.Data, 0, result, 0, size); } state.Callback?.Invoke(result); } catch (Exception ex) { state.Callback?.Invoke(null); } }
public AsyncData(T?data, AsyncDataState state = AsyncDataState.Initial, string error = "") => (Data, State, Error) = (data, state, error);