,並得到this answer
Parallel.ForEach(lines.GroupBy(line => line.TheUser), grp => {
// processing user grp.Key
foreach(var line in grp) {
// do the stuff here
}
});
如何才能獲得單獨而不是一個foreach的用戶1或用戶2組?
在上面的代碼中,它將它們排序並打印出來。我想訪問他們小組明智的。
,並得到this answer
Parallel.ForEach(lines.GroupBy(line => line.TheUser), grp => {
// processing user grp.Key
foreach(var line in grp) {
// do the stuff here
}
});
如何才能獲得單獨而不是一個foreach的用戶1或用戶2組?
在上面的代碼中,它將它們排序並打印出來。我想訪問他們小組明智的。
lines.AsParallel().Select(x => x.TheUser)
應該回到你的IEnumrable TheUser的...
你真的應該使用微軟的無框架這一點。剛剛的NuGet「RX-主」,然後你可以這樣做:
var query =
from grp in lines.GroupBy(line => line.TheUser).ToObservable()
from line in grp.ToObservable()
from output in Observable.Start(() => /* Do lengthy process here */)
select new { line, output };
query.Subscribe(result => { /* get the results here */ });
現在,只是讓我可以證明,這個工程:
var query =
from grp in Enumerable.Range(0, 20).GroupBy(x => x % 5).ToObservable()
from line in grp.ToObservable()
from tid in Observable.Start(() => System.Threading.Thread.CurrentThread.ManagedThreadId)
select new { line, tid };
當query.Subscribe(x => { ... })
運行它給這種輸出的:
可以看到,ManagedThreadId
變化的輸入值,因此處理並行發生。
你需要更清楚一點,你真正想要做什麼。 *我想要訪問它們是什麼組明智*意味着什麼?你想在分組上做什麼? –