private void successProcesser(SpeedTest.SpeedTest sender, float speed)
        {
            Contract.Requires(sender != null);
            Contract.Requires(!float.IsNaN(speed));
            //var hRSpeed = SpeedTest.SpeedTest.speedToHumanReadable(speed, 1000, "");
            var hRSpeed = SpeedTest.SpeedTest.speedToHumanReadable(speed);

            if (Dispatcher.CheckAccess())
            {
                switch (sender.stage)
                {
                case SpeedTest.SpeedTest.Stage.DOWNLOAD:
                    downloadSpeedLbl.Content = hRSpeed;
                    break;

                case SpeedTest.SpeedTest.Stage.UPLOAD:
                    startTestBtn.IsEnabled        = true;
                    uploadSpeedLbl.Content        = hRSpeed;
                    TaskbarItemInfo.Description   = uploadSpeedLbl.Content + Environment.NewLine + downloadSpeedLbl.Content;
                    TaskbarItemInfo.ProgressState = TaskbarItemProgressState.None;
                    break;
                }
            }
            else
            {
                Dispatcher.Invoke(successListener, new object[] { sender, speed });
            }
        }
 private void progressListener(SpeedTest.SpeedTest sender, float progress)
 {
     if (Dispatcher.CheckAccess())
     {
         downBar.Value = progress;
         infoBlk.Text  = progress + " %";
         TaskbarItemInfo.ProgressValue = progress / 100;
         TaskbarItemInfo.Description   = infoBlk.Text;
     }
     else
     {
         Dispatcher.Invoke(bytesLoadListener, new object[] { sender, progress });
     }
 }
        private void progressProcesser(SpeedTest.SpeedTest sender, float progress)
        {
            Contract.Requires(sender != null);
            Contract.Requires(!float.IsNaN(progress));
            if (Dispatcher.CheckAccess())
            {
                switch (sender.stage)
                {
                case SpeedTest.SpeedTest.Stage.UPLOAD:
                    uploadProgress.Value = progress;
                    break;

                case SpeedTest.SpeedTest.Stage.DOWNLOAD:
                    downloadProgress.Value = progress;
                    break;
                }
                TaskbarItemInfo.ProgressValue = (uploadProgress.Value + downloadProgress.Value) / 2;
                TaskbarItemInfo.Description   = (uploadProgress.Value + downloadProgress.Value) / 2 + " %";
            }
            else
            {
                Dispatcher.Invoke(progressListener, new object[] { sender, progress });
            }
        }