public void Execute(object parameter) { if (!canExecute) { return; } SetCanExecute(false); checker.RunAsync(); Status = "帯域測定中"; }
protected override async void OnInitialized(EventArgs e) { base.OnInitialized(e); Uri target_uri; string uri_key; switch (NetworkType) { case NetworkType.IPv6: uri_key = "BandwidthCheckerV6"; break; case NetworkType.IPv4: default: uri_key = "BandwidthChecker"; break; } if (AppSettingsReader.TryGetUri(uri_key, out target_uri)) { Status = "帯域測定中"; IsChecking = true; cancellationTokenSource = new CancellationTokenSource(); var checker = new BandwidthChecker(target_uri, NetworkType); try { var result = await checker.RunAsync(cancellationTokenSource.Token); if (result.Succeeded) { Result = (int)((result.Bitrate / 1000) * 0.8 / 100) * 100; Status = String.Format("帯域測定完了: {0}kbps, 設定推奨値: {1}kbps", result.Bitrate / 1000, (int)((result.Bitrate / 1000) * 0.8 / 100) * 100); } else { Status = "帯域測定失敗。接続できませんでした"; } } catch (OperationCanceledException) { Status = "キャンセルされました"; } IsChecking = false; } else { this.IsChecking = false; this.Status = "接続先設定が取得できません"; } }