private static void ReadAsyncCallback(IAsyncResult ar) { FileAsyncState state = ar.AsyncState as FileAsyncState; int length = state.src.EndRead(ar); state.dst.Write(state.buffer, 0, length); if (length < FileAsyncState.MAX_READ) { if (state.autoClose) { state.src.Close(); state.dst.Close(); } state.isDone = true; return; } state.src.BeginRead(state.buffer, 0, FileAsyncState.MAX_READ, ReadAsyncCallback, state); }
public static void CopyAsync(FileAsyncState state) { state.src.BeginRead(state.buffer, 0, FileAsyncState.MAX_READ, ReadAsyncCallback, state); }