Concurrency.cs 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. // Licensed to the .NET Foundation under one or more agreements.
  2. // The .NET Foundation licenses this file to you under the MIT License.
  3. // See the LICENSE file in the project root for more information.
  4. extern alias SystemReactiveNet;
  5. using SystemReactiveNet::System.Reactive.Concurrency;
  6. using System.Runtime.CompilerServices;
  7. [assembly:TypeForwardedToAttribute(typeof(AsyncLock))]
  8. [assembly:TypeForwardedToAttribute(typeof(IConcurrencyAbstractionLayer))]
  9. [assembly:TypeForwardedToAttribute(typeof(CurrentThreadScheduler))]
  10. [assembly:TypeForwardedToAttribute(typeof(DefaultScheduler))]
  11. [assembly:TypeForwardedToAttribute(typeof(EventLoopScheduler))]
  12. [assembly:TypeForwardedToAttribute(typeof(HistoricalSchedulerBase))]
  13. [assembly:TypeForwardedToAttribute(typeof(HistoricalScheduler))]
  14. [assembly:TypeForwardedToAttribute(typeof(ImmediateScheduler))]
  15. [assembly:TypeForwardedToAttribute(typeof(IScheduledItem<>))]
  16. [assembly:TypeForwardedToAttribute(typeof(IScheduler))]
  17. [assembly:TypeForwardedToAttribute(typeof(ISchedulerLongRunning))]
  18. [assembly:TypeForwardedToAttribute(typeof(ISchedulerPeriodic))]
  19. [assembly:TypeForwardedToAttribute(typeof(IStopwatch))]
  20. [assembly:TypeForwardedToAttribute(typeof(IStopwatchProvider))]
  21. [assembly:TypeForwardedToAttribute(typeof(LocalScheduler))]
  22. [assembly:TypeForwardedToAttribute(typeof(NewThreadScheduler))]
  23. [assembly:TypeForwardedToAttribute(typeof(ScheduledItem<>))]
  24. [assembly:TypeForwardedToAttribute(typeof(ScheduledItem<,>))]
  25. [assembly:TypeForwardedToAttribute(typeof(Scheduler))]
  26. [assembly:TypeForwardedToAttribute(typeof(SchedulerOperation))]
  27. [assembly:TypeForwardedToAttribute(typeof(SchedulerOperationAwaiter))]
  28. [assembly:TypeForwardedToAttribute(typeof(SchedulerQueue<>))]
  29. [assembly:TypeForwardedToAttribute(typeof(Synchronization))]
  30. [assembly:TypeForwardedToAttribute(typeof(SynchronizationContextScheduler))]
  31. [assembly:TypeForwardedToAttribute(typeof(TaskObservationOptions))]
  32. [assembly:TypeForwardedToAttribute(typeof(TaskPoolScheduler))]
  33. #if !WINDOWS_UWP
  34. // The UWP build of System.Reactive has always included some additional UWP-specific members in its ThreadPoolScheduler,
  35. // so we can't forward the ThreadPoolScheduler type to the one in System.Reactive.Net for UWP builds.
  36. // Instead, we supply a completely separate ThreadPoolScheduler type in this component. The UWP-specific members are
  37. // all marked as obsolete. The intended migration for UWP apps is:
  38. // 1. Replace any use of the UWP-specific ThreadPoolScheduler features with UwpThreadPoolScheduler from the new
  39. // Uwp-specific component. (If the app was using only standard ThreadPoolScheduler features, this step will
  40. // not be required.)
  41. // 2. Replace reference to System.Reactive with System.Reactive.Net.
  42. // TODO: does this create a problem for UWP apps that depend indirectly on multiple versions of Rx? They'll have
  43. // both System.Reactive and System.Reactive.Net. Both types will define ThreadPoolScheduler. Pre-compiled components
  44. // will get the one they were build against, but the type name ThreadPoolScheduler will be ambiguous in the app code.
  45. [assembly:TypeForwardedToAttribute(typeof(ThreadPoolScheduler))]
  46. #endif
  47. [assembly:TypeForwardedToAttribute(typeof(VirtualTimeSchedulerBase<,>))]
  48. [assembly:TypeForwardedToAttribute(typeof(VirtualTimeScheduler<,>))]
  49. [assembly:TypeForwardedToAttribute(typeof(VirtualTimeSchedulerExtensions))]
  50. // Seem comments in Reactive\Linq.cs for why we exclude forwarders for these types in some reference assemblies.
  51. #if !(BUILDING_REFERENCE_ASSEMBLY && NET8_0_OR_GREATER)
  52. #if WINDOWS
  53. [assembly:TypeForwardedToAttribute(typeof(System.Reactive.Concurrency.CoreDispatcherScheduler))]
  54. #endif
  55. #if HAS_WINFORMS
  56. [assembly:TypeForwardedToAttribute(typeof(System.Reactive.Concurrency.ControlScheduler))]
  57. #endif
  58. #if HAS_DISPATCHER
  59. [assembly:TypeForwardedToAttribute(typeof(System.Reactive.Concurrency.DispatcherScheduler))]
  60. #endif
  61. #endif