void MergeOptions(OptionsList list) { if (list.Item1 != null) { if (options == null) { options = list.Item1; } else { Throw("WithMergeOptions"); } } if (list.Item2 != null) { if (mode == null) { mode = list.Item2; } else { Throw("WithExecutionMode"); } } if (list.Item3 != null) { if (token == null) { token = list.Item3; } else { Throw("WithCancellationToken"); } } if (list.Item4 != -1) { if (degreeOfParallelism == null) { degreeOfParallelism = list.Item4; } else { Throw("WithDegreeOfParallelism"); } } // That one is treated specially if (list.Item5 != null) { implementerToken = implementerToken.Chain(list.Item5); } }