public async Task LaunchAppAsync(HoloLensApplication app) { foreach (var holoLens in ManagedHoloLens) { await holoLens.LaunchAppAsync(app); } }
public async Task LaunchAppAsync(HoloLensApplication app) { if (_devicePortal == null || !IsConnected) { Message = "Launch app failed."; return; } // 実行中のプロセスのリストを取得 var processes = await _devicePortal.GetRunningProcessesAsync(); // ターゲットのアプリを起動 await _devicePortal.LaunchApplicationAsync(app.AppId, app.PackageName); var targetProcesses = processes.Processes // 間違って自分自身を殺さないようにフィルタ .Where(x => x.PackageFullName != app.PackageName) // 終了してはいけないプロセスを除外 .Where(x => !DoNotCloseApps.Contains(x.Name, StringComparer.OrdinalIgnoreCase)) // 空のものは除外 .Where(x => !string.IsNullOrWhiteSpace(x.PackageFullName)); // 順次他のプロセスを終了していく foreach (var process in targetProcesses) { try { await _devicePortal.TerminateApplicationAsync(process.PackageFullName); } catch (Exception ex) { Message = $"{process.AppName} の停止に失敗しました。"; Debug.WriteLine(ex); } } }