Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Xamarin表单-在扫描文件ToFolderAsync上引发的TaskCanceledException_C#_Xamarin.forms_Uwp_Win Universal App - Fatal编程技术网

C# Xamarin表单-在扫描文件ToFolderAsync上引发的TaskCanceledException

C# Xamarin表单-在扫描文件ToFolderAsync上引发的TaskCanceledException,c#,xamarin.forms,uwp,win-universal-app,C#,Xamarin.forms,Uwp,Win Universal App,在我的UWP应用程序中,我正在研究扫描功能。在此应用程序中,用户可以通过选择平板或自动进纸器通过扫描仪扫描文档。现在的问题是,当我尝试扫描文档时,会出现en异常,任务被取消 请帮忙 提前感谢。:) 祝你今天愉快……:) 功能扫描到文件夹 public async void ScanToFolder(string deviceId, StorageFolder folder) { try { cancellationToken = new Cancell

在我的UWP应用程序中,我正在研究扫描功能。在此应用程序中,用户可以通过选择平板或自动进纸器通过扫描仪扫描文档。现在的问题是,当我尝试扫描文档时,会出现en异常,任务被取消

请帮忙

提前感谢。:)

祝你今天愉快……:)

功能扫描到文件夹

 public async void ScanToFolder(string deviceId, StorageFolder folder)
    {
        try
        {
 cancellationToken = new CancellationTokenSource();

            ImageScanner myScanner = await ImageScanner.FromIdAsync(deviceId);

            if (myScanner.IsScanSourceSupported(ImageScannerScanSource.Flatbed))
            {
                var result = await myScanner.ScanFilesToFolderAsync(ImageScannerScanSource.Flatbed, folder).AsTask(cancellationToken.Token); // through an exception(A Task Was Canceled):(
Utils.DisplayImageAndScanCompleteMessage(result.ScannedFiles, DisplayImage);

            }

        }

        catch (Exception ex)
        {
            // here i got the exception.
        }

    }
更新:

现在我将DeviceClass设置为ALL

   private void StartWatcher()
    {
        resultCollection.Clear();
        DeviceWatcher deviceWatcher;

        deviceWatcher = DeviceInformation.CreateWatcher(DeviceClass.All); // set Image scanner to all. 
       deviceWatcherHelper.StartWatcher(deviceWatcher);
  }
在扫描仪列表中运行项目后,我得到了所有连接的设备,其中我得到了扫描仪名称:当我尝试传递此名称时,imagescanner系统中出现错误。异常:“来自HRESULT的异常:0x80210015”表示找不到设备。 现在我把所有东西都换成了ImageScanner我在扫描仪列表中什么都没有

在HP扫描仪应用程序中,我得到了这个名字。它扫描得很好:(在扫描列表中,我的应用程序中没有这个名字。)

在我的pc设置->设备->扫描仪和打印机上,我得到了这些名称


重新编写问题的解决方案作为答案。我在我的机器上测试了代码,它的行为正确,并认为问题最有可能是驱动程序问题。这已由OP确认,重新安装驱动程序有助于再次进行扫描。

声明的
取消令牌在哪里?它不是实际的吗是否被取消?我已经在我的机器上测试了你的项目,它看起来确实像预期的那样工作,我没有得到任何
TaskCanceledException
。也许你的扫描仪驱动程序有问题?你能在其他机器上或其他扫描仪上测试吗?您好,很抱歉回复太晚,TWAIN.dll不能直接在Xamarin中使用。表单aND UWP,但是您可以使用桌面扩展()来启动完全信任程序集并与之通信。我有一个三星扫描仪,它有一个扫描仪!我已经把解决方案改写为一个答案,请考虑接受它,这样问题就解决了。快乐编码!
   private void StartWatcher()
    {
        resultCollection.Clear();
        DeviceWatcher deviceWatcher;

        deviceWatcher = DeviceInformation.CreateWatcher(DeviceClass.All); // set Image scanner to all. 
       deviceWatcherHelper.StartWatcher(deviceWatcher);
  }