加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何使用Delphi并行化检查拼写?

发布时间:2020-12-15 09:48:18 所属栏目:大数据 来源:网络整理
导读:我有一种用Delphi编写的拼写检查器.它逐句分析文本. 在解析每个句子后,它根据一些规则来包含错误的项目.用户可以中断此过程,这很重要. 如何使用某些第三方Delphi库来一般并行化这个过程? 在目前的状态下,我在检查后立即着色.因此,用户可以看到进度. 解决方
我有一种用Delphi编写的拼写检查器.它逐句分析文本.
在解析每个句子后,它根据一些规则来包含错误的项目.用户可以中断此过程,这很重要.
如何使用某些第三方Delphi库来一般并行化这个过程?
在目前的状态下,我在检查后立即着色.因此,用户可以看到进度.

解决方法

算法如下:

>创建多个工作人员.
>在每个工人中创建一个拼写检查器.
>抓取文本并将其拆分为工作单位(单词或句子).每个工作单位必须附有原始文本的位置.
>将工作单位发送给工人.好的方法是将数据发送到工作单位的公共队列中.队列必须支持多个读取器,或者必须使用锁定才能访问它.
>每个工人都带一个工作单位,进行拼写检查并将结果(连同原始文本中的位置)返回给所有者.

>返回结果的最简单方法是向主线程发送消息.
>或者,您可以将结果写入结果队列(必须使用锁定或支持多个编写器),然后应用程序可以轮询这些结果(来自计时器或来自OnIdle处理程序).

多个拼写检查器如何访问字典是另一个问题.您可以在每个工作程序中加载字典的副本,或者可以使用锁保护对字典的访问(但这会减慢速度).如果幸运的话,字典对于读取是线程安全的,您可以在不锁定的情况下同时进行查询.

针对该问题的适当OmniThreadLibrary抽象可以是ParallelTask或BackgroundWorker.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读