I have a .NET application that processes about 300,000 records in a batch import, and it takes a few seconds to write, so I would like to parallelize this. In the following code, what's the difference between ProcessWithAnsycDelegates() and ProcessWithThreadPool() ?
public class ResultNotification { public EventHandler event Success; public EventHandler event Fail; internal void Notify(bool sucess) {if (success) Success(); else Fail();} } public static class Processor { public ResultNotification ProcessWithAnsycDelegates(Record record) { var r = new ResultNotification(); Func<Record,bool> processRecord=new RecordProcessor().ProcessRecord; processRecord.BeginInvoke ( record ,ar => result.Notify(processRecord.EndInvoke(ar)) ,null); return r; } public ResultNotification ProcessWithThreadPool(Record r) { var r = new ResultNotification(); var rp = new RecordProcessor(); ThreadPool.QueueWorkUserItem(_=>result.Notify(rp.ProcessRecord(r))); return r; } }
Mark cidade
source share