private async Task CacheDeviceListAsync() { await Task.Run(() => { var cameraList = _sdkService.GetDevices(1); CachedCameras.Clear(); foreach (var camera in cameraList) { if (!string.IsNullOrEmpty(camera.Name)) { CachedCameras.Add(camera.Name); } } CachedCameras.Add(NonExclusiveItem); var micList = _sdkService.GetDevices(3); CachedMicrophones.Clear(); foreach (var mic in micList) { if (!string.IsNullOrEmpty(mic.Name)) { CachedMicrophones.Add(mic.Name); } } CachedMicrophones.Add(NonExclusiveItem); var speakerList = _sdkService.GetDevices(4); CachedSpeakers.Clear(); foreach (var speaer in speakerList) { if (!string.IsNullOrEmpty(speaer.Name)) { CachedSpeakers.Add(speaer.Name); } } }); }