private static async void Timer_Tick(ThreadPoolTimer timer)
        {
            await Task.Yield();
            try
            {
                NtpClient ntp = new NtpClient("au.pool.ntp.org");

                var accurateTime = await ntp.GetNetworkTimeAsync(TimeSpan.FromSeconds(10));

                utcOffset = DateTime.UtcNow.Subtract(accurateTime);
            }
            catch { }
        }
        public static async void StartNtpTimeService()
        {
            try
            {
                if (NtpInitalised) { return; }
                NtpInitalised = true;

                NtpClient ntp = new NtpClient("au.pool.ntp.org");

                //http://stackoverflow.com/questions/1193955/how-to-query-an-ntp-server-using-c
                var accurateTime = await ntp.GetNetworkTimeAsync(TimeSpan.FromSeconds(15));

                utcOffset = DateTime.UtcNow.Subtract(accurateTime);
            }
            catch { }

        //    ntpTimer = ThreadPoolTimer.CreatePeriodicTimer(Timer_Tick, TimeSpan.FromMinutes(5));
        }