首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ListViewItemCollection in Parallel.ForEach

ListViewItemCollection in Parallel.ForEach
EN

Stack Overflow用户
提问于 2014-04-28 08:25:21
回答 2查看 572关注 0票数 0

我想操作ListView中的所有条目,最好是并行的。

代码语言:javascript
复制
Parallel.Foreach<ListViewItem>(auftraegeView.Items, line => 
{
    line.Font = new Font(line.Font.FontFamily, someInt);
});

但这不起作用,因为

无法从ListViewItemCollection转换为IEnumerable

ListViewItemCollection不提供像ToList()之类的方法。

我是那种爱笑又笑的人--我试着做了一个演员

代码语言:javascript
复制
(IEnumerable<ListViewItem>)auftraegeView.Items

这没有抛出编译器错误,但在运行时导致了InvalidCasTException。

注意:

尖括号是有意倒置的,这样它们在这里就不会像HTML那样被吃掉。

问题:

是否有一种方法将ListView.Items / ListViewItemCollection转换为实现IEnumerable Interface的东西,从而与Parallel.ForEach一起工作

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-28 08:32:45

试试这个:

代码语言:javascript
复制
Parallel.Foreach(auftraegeView.Items.Cast<ListViewItem>(), line => 
{
    line.Font = new Font(line.Font.FontFamily, someInt);
});
票数 1
EN

Stack Overflow用户

发布于 2014-04-28 09:08:40

您的问题可能得到了回答,但也许您应该考虑另一种方法来设置行的FontFamily。应该是UI的东西。尝试以样式声明它,或者如果您想动态更改字体,请使用某种触发器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23336051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档