PDF IFilter V6 Backgroundworker线程问题-删除VSHost

本文关键字:删除 VSHost 问题 线程 IFilter V6 Backgroundworker PDF | 更新日期: 2023-09-27 18:28:43

我目前正在编写一个文件扫描实用程序,并在WinForms应用程序中使用IFilters。

我把扫描文件的代码移到了一个Backgroundworker上,自从我这样做之后,PDF IFilter应用程序就出现了错误。

这是我在事件日志中得到的错误:

Faulting application name: Scanner.vshost.exe, version: 11.0.50727.1, time stamp: 0x5011d445
Faulting module name: PDFL60.dll, version: 6.1.0.0, time stamp: 0x40bcc106
Exception code: 0xc0000005
Fault offset: 0x0000a3c5
Faulting process id: 0x1e8
Faulting application start time: 0x01ce9f4fc83fac44
Faulting application path: C:'Development'Scanner'Scanner'bin'Debug'Scanner.vshost.exe
Faulting module path: C:'Program Files'Adobe'PDF IFilter 6.0'PDFL60.dll
Report Id: 6a4c3638-0b44-11e3-bb16-082e5f03ae88

令人担忧的是,它正在淘汰VSHost,并不是每个PDF都会发生这种情况。他们中的一些人很好。

其他人有没有犯过这个错误,或者有人能说明可能是什么原因造成的吗?

PDF IFilter V6 Backgroundworker线程问题-删除VSHost

Adobe 8以后版本中的最新IFilter似乎只支持Windows中搜索索引器使用的流接口。这就解释了为什么我在使用最新版本时"不支持任何接口"。

IFilter的V6.0在不用于单线程应用程序时会变得脆弱,如所示

我遇到的第一个解决方案是使用Foxit PDF IFilter,它的工作原理很有魅力,如果我能从我的客户那里挤出600美元,我肯定会购买。我使用此IFilter运行时没有问题。

第二个也是免费的解决方案是使用Adbobe IFilter 5.0。近10年的历史,但实现了文件接口,并且是稳定的。

另一种解决方案可能是切换到64位。来自Adobe的64位过滤器的V9.0正在工作并且是稳定的。