async Task ChangePieceWriterAsync (IPieceWriter writer) { writer = writer ?? throw new ArgumentNullException (nameof (writer)); await MainLoop; if (IsRunning) throw new InvalidOperationException ("You must stop all active downloads before changing the piece writer used to write data to disk."); await DiskManager.SetWriterAsync (writer); }