瀏覽代碼

Inlining, closures are not an issue here anymore.

Daniel Weber 7 年之前
父節點
當前提交
405c090449
共有 1 個文件被更改,包括 2 次插入18 次删除
  1. 2 18
      Rx.NET/Source/src/System.Reactive/Linq/Observable/SelectMany.cs

+ 2 - 18
Rx.NET/Source/src/System.Reactive/Linq/Observable/SelectMany.cs

@@ -588,18 +588,10 @@ namespace System.Reactive.Linq.ObservableImpl
                     }
                     else
                     {
-                        AttachContinuation(value, task);
+                        task.ContinueWithState((t, tuple) => [email protected](tuple.value, t), (@this: this, value), _cancel.Token);
                     }
                 }
 
-                private void AttachContinuation(TSource value, Task<TCollection> task)
-                {
-                    //
-                    // Separate method to avoid closure in synchronous completion case.
-                    //
-                    task.ContinueWithState((t, tuple) => [email protected](tuple.value, t), (@this: this, value), _cancel.Token);
-                }
-
                 private void OnCompletedTask(TSource value, Task<TCollection> task)
                 {
                     switch (task.Status)
@@ -749,18 +741,10 @@ namespace System.Reactive.Linq.ObservableImpl
                     }
                     else
                     {
-                        AttachContinuation(value, index, task);
+                        task.ContinueWithState((t, tuple) => [email protected](tuple.value, tuple.index, t), (@this: this, value, index), _cancel.Token);
                     }
                 }
 
-                private void AttachContinuation(TSource value, int index, Task<TCollection> task)
-                {
-                    //
-                    // Separate method to avoid closure in synchronous completion case.
-                    //
-                    task.ContinueWithState((t, tuple) => [email protected](tuple.value, tuple.index, t), (@this: this, value, index), _cancel.Token);
-                }
-
                 private void OnCompletedTask(TSource value, int index, Task<TCollection> task)
                 {
                     switch (task.Status)