Imported Upstream version 4.0.0~alpha1

Former-commit-id: 806294f5ded97629b74c85c09952f2a74fe182d9
This commit is contained in:
Jo Shields
2015-04-07 09:35:12 +01:00
parent 283343f570
commit 3c1f479b9d
22469 changed files with 2931443 additions and 869343 deletions

View File

@@ -0,0 +1,68 @@
//----------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//----------------------------------------------------------------------------
namespace System.Runtime
{
using System.Security;
using System.Runtime.Interop;
static class Ticks
{
public static long Now
{
[Fx.Tag.SecurityNote(Miscellaneous = "Why isn't the SuppressUnmanagedCodeSecurity attribute working in this case?")]
[SecuritySafeCritical]
get
{
long time;
#pragma warning disable 1634
#pragma warning suppress 56523 // function has no error return value
#pragma warning restore 1634
UnsafeNativeMethods.GetSystemTimeAsFileTime(out time);
return time;
}
}
public static long FromMilliseconds(int milliseconds)
{
return checked((long)milliseconds * TimeSpan.TicksPerMillisecond);
}
public static int ToMilliseconds(long ticks)
{
return checked((int)(ticks / TimeSpan.TicksPerMillisecond));
}
public static long FromTimeSpan(TimeSpan duration)
{
return duration.Ticks;
}
public static TimeSpan ToTimeSpan(long ticks)
{
return new TimeSpan(ticks);
}
public static long Add(long firstTicks, long secondTicks)
{
if (firstTicks == long.MaxValue || firstTicks == long.MinValue)
{
return firstTicks;
}
if (secondTicks == long.MaxValue || secondTicks == long.MinValue)
{
return secondTicks;
}
if (firstTicks >= 0 && long.MaxValue - firstTicks <= secondTicks)
{
return long.MaxValue - 1;
}
if (firstTicks <= 0 && long.MinValue - firstTicks >= secondTicks)
{
return long.MinValue + 1;
}
return checked(firstTicks + secondTicks);
}
}
}