123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- // Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license 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
|