static void getStemms(string queryPar, int lcid, OnStemmed onStemmed) { DataSet ds = new DataSet(); var query = string.Format("SELECT * FROM dbo.wordsStemms(N'{0}', {1}) ", queryPar, (int)lcid); using (SqlConnection subconn = new SqlConnection("data source=localhost\\SQLEXPRESS01;initial catalog=FulltextDesign;integrated security=True")) using (SqlDataAdapter adapter = new SqlDataAdapter { SelectCommand = new SqlCommand(query, subconn) }) adapter.Fill(ds); lock (onStemmed) onStemmed(ds.Tables[0].Rows.Cast <DataRow>().Select(r => { try { return(new WordStemm { word = (string)r["value"], stemms = r["stemms"] as string, }); } catch { return(null); } })); }
public static void getStemms(List <string> words, int lcid, int batchSize, OnStemmed onStemmed) { Parallel.ForEach(Intervals.intervals(words.Count, batchSize), inter => { getStemms(getQuery(words, inter.start, inter.end), lcid, onStemmed); }); }