C# DeviceInformation.FindAllAsync()不执行任何操作

C# DeviceInformation.FindAllAsync()不执行任何操作,c#,uwp,barcode-scanner,C#,Uwp,Barcode Scanner,我已经在我的UWP应用程序中使用了三个星期的摄像头条码扫描仪(微软的条码扫描仪API)。 它工作正常,但有时条形码的预览窗口没有打开,BarcodeScanner没有打开 当我发现这一点时,我将我的应用程序置于调试模式,以查看问题出在哪里,以及它们是否引发了一些异常 下面是我初始化条形码扫描仪的方法: 公共异步任务ClaimScannerAsync() { 字符串选择器=Windows.Devices.PointOfService.BarcodeScanner.GetDeviceSelector

我已经在我的UWP应用程序中使用了三个星期的摄像头
条码扫描仪
(微软的条码扫描仪API)。
它工作正常,但有时条形码的预览窗口没有打开,
BarcodeScanner
没有打开

当我发现这一点时,我将我的应用程序置于调试模式,以查看问题出在哪里,以及它们是否引发了一些异常

下面是我初始化条形码扫描仪的方法:

公共异步任务ClaimScannerAsync()
{
字符串选择器=Windows.Devices.PointOfService.BarcodeScanner.GetDeviceSelector();
DeviceInformation Collection deviceCollection=Wait DeviceInformation.FindAllAsync(选择器);
如果(_scanner==null)
_scanner=等待Windows.Devices.PointOfService.BarcodeScanner.FromIdAsync(deviceCollection[0].Id);
如果(_scanner!=null)
{
if(_claimedBarcodeScanner==null)
_claimedBarcodeScanner=await_scanner.ClaimScannerSync();
if(_claimedBarcodeScanner!=null)
{
_claimedBarcodeScanner.DataReceived+=claimedBarcodeScanner\u DataReceivedAsync;
_claimedBarcodeScanner.ReleaseDeviceRequested+=claimedBarcodeScanner\u ReleaseDeviceRequested;
_claimedBarcodeScanner.IsDecodeDataEnabled=true;
_claimedBarcodeScanner.IsDisabledOnDataReceived=true;
wait_claimedBarcodeScanner.EnableAsync();
//wait_claimedBarcodeScanner.ShowVideoPreviewAsync();
wait_claimedBarcodeScanner.StartSoftwareTriggerAsync();
等待StartPreviewSync();
Debug.WriteLine(“条形码扫描仪”);
}
}
}
。。。问题似乎来自于这一行:

DeviceInformationCollection deviceCollection=wait DeviceInformation.findalsync(选择器);
召集人:

执行内部异步任务OnBarcodeExecuted(对象dataContext) { 尝试 { CurrentDataContext=dataContext; _scanner.Subscribe(OnBarcodeReceived); wait_scanner.ClaimScannerAsync(); } 捕获(例外e) { Debug.WriteLine(e.Message); } }
OnBarcodeReceived
在我的ViewModel中:

OnBarcodeReceived私有无效(字符串条形码)
{
忽略var=Windows.ApplicationModel.Core.CoreApplication.MainView.corefown.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,()=>
{
如果(CurrentDataContext是可编辑的)
{
IsCanable项=(IsCanable)CurrentDataContext;
item.NumSerie=条形码;
}
});
}
代码只是停止并等待,没有抛出错误


因此,如果有人能向我解释,为什么会这样做,为什么代码在一定时间后不会抛出任何错误?

您使用的是什么条形码扫描仪API?我们需要更多信息我正在使用microsoft提供的条形码api,它是一个摄像头条形码扫描仪您如何调用
ClaimScannerAsync
?它是在等待,还是在尝试/捕获中?是的,它在尝试/捕获中,但正如我所说,它不会引发任何异常,我编辑了我的帖子,那么您调用OnBarcodeExecuted的代码呢?当您看到DeviceInformation.FindAllAsync没有响应时,是否阻止了UI线程?您使用的是什么条形码扫描API?我们需要更多信息我正在使用microsoft提供的条形码api,它是一个摄像头条形码扫描仪您如何调用
ClaimScannerAsync
?它是在等待,还是在尝试/捕获中?是的,它在尝试/捕获中,但正如我所说,它不会引发任何异常,我编辑了我的帖子,那么您调用OnBarcodeExecuted的代码呢?当您看到DeviceInformation.FindAllAsync没有响应时,是否阻止了UI线程?