我知道我的问题需要更多的指导和技术性,但我希望SO成员不会介意TPL Dataflow的新手提出一些非常基本的问题。
我有一个简单的Windows窗体应用程序,它负责从我的系统上的Excel文件中提取数据并将它们保存在数据库中。这个过程太长了,我想把它变成异步和并行。以下是我的方案的简要说明。
调用函数以在开始时打开与数据库的连接
使用操作时间调用更新数据库的功能
应用程序需要处理假设100个Excel文件,这些文件按递增顺序排列。为此,我使用了FileNumber,每次调用都会增加。
调用UpdateUI的函数(传递PageNumber)(例如。文件1处理)
调用函数读取Excel文件(传递PageNumber)
调用处理Excel文件数据的函数(传递Excel数据并传递PageNumber)
调用函数以保存数据库中的值(传递Excel数据并传递PageNumber)
调用UpdateUI函数(传递PageNumber)(例如。文件1已处理)
现在我所取得的成就是我能够使用Tasks使这个过程异步。我已经使用了异步并等待所有长时间运行的操作,并将我的函数转换为Tasks。
现在我想让一些任务并行运行。并非每个任务都是并行的,例如OpenDatabase连接只是异步。但我想创建一个单独的任务或函数,它将为我的应用程序中的每个任务/功能使用数据流块,从更新UI到ReadingExcel文件并将它们保存到数据库中。
我开始使用ActionBlock尝试这个但是有很多不同的块我不知道。请指导我在这种情况下使用哪个区块。如果有人为这个场景提供伪代码,那么它真的很棒。我将有一些事情可以从中开始。