| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- // Licensed to the .NET Foundation under one or more agreements.
- // The .NET Foundation licenses this file to you under the Apache 2.0 License.
- // See the LICENSE file in the project root for more information.
- #if !NO_STOPWATCH
- using System.Diagnostics;
- namespace System.Reactive.Concurrency
- {
- //
- // WARNING: This code is kept *identically* in two places. One copy is kept in System.Reactive.Core for non-PLIB platforms.
- // Another copy is kept in System.Reactive.PlatformServices to enlighten the default lowest common denominator
- // behavior of Rx for PLIB when used on a more capable platform.
- //
- internal class DefaultStopwatch/*Impl*/ : IStopwatch
- {
- private readonly Stopwatch _sw;
- public DefaultStopwatch()
- {
- _sw = Stopwatch.StartNew();
- }
- public TimeSpan Elapsed
- {
- get { return _sw.Elapsed; }
- }
- }
- }
- #else
- namespace System.Reactive.Concurrency
- {
- // This class is only used on Silverlight in the browser. It mimicks !Stopwatch.HighResolution behavior and suffers from
- // use of absolute time. See work item 486045.
- internal class DefaultStopwatch : IStopwatch
- {
- private readonly DateTime _start;
- public DefaultStopwatch()
- {
- _start = DateTime.UtcNow;
- }
- public TimeSpan Elapsed
- {
- get { return DateTime.UtcNow - _start; }
- }
- }
- }
- #endif
|