首页新闻找找看学习计划

为什么方法体中用action委托??

0
[已解决问题] 解决于 2016-03-16 15:16
 1 private void AddCamera(VideoSourceInfo vInfo)
 2         {
 3             Action action = new Action(() => 
 4             {
 5                 TreeViewItem treeViewItem = new TreeViewItem();
 6                 Style myTreeViewItemStyle = this.FindResource("TreeViewItemStyle2") as Style;
 7                 if (myTreeViewItemStyle == null)
 8                 {
 9                     return;
10                 }
11                 treeViewItem.FontSize = 14;
12                 treeViewItem.Foreground = new SolidColorBrush(Color.FromRgb(56, 153, 250));
13                 treeViewItem.Style = myTreeViewItemStyle;
14 
15                 treeViewItem.Header = vInfo.Name;
16 
17                 treeViewItem.Tag = vInfo;
18                 tvCameraList.Items.Add(treeViewItem);
19             });
20             this.Dispatcher.BeginInvoke(action);
21         }

我想知道为什么要用Action委托来做这事?直接在方法体中也可以做吧?难道是异步提升效率?求大神解释一下,谢谢!

钱恩基的主页 钱恩基 | 初学一级 | 园豆:198
提问于:2016-03-16 10:47
< >
分享
最佳答案
0

他这样做就是生成一个匿名方法,直接赋值给 this.Dispatcher.BeginInvoke了。

你自己写一个方法,还是要丢在这里面 this.Dispatcher.BeginInvoke

奖励园豆:5
Me_Code | 初学一级 |园豆:52 | 2016-03-16 15:05

我主要是想知道这样会不会有性能上的提高呢?

钱恩基 | 园豆:198 (初学一级) | 2016-03-16 15:13

@钱恩基: 他仅仅比你少声明一个方法。

Me_Code | 园豆:52 (初学一级) | 2016-03-16 15:14

@Me_Code: 恩恩  谢了

钱恩基 | 园豆:198 (初学一级) | 2016-03-16 15:15
其他回答(1)
0

怎么实现都行,估计是那个程序员喜欢这样写

不过这样写可以使这个类少一个方法

刘宏玺 | 园豆:14004 (专家六级) | 2016-03-16 11:01

也是哈  多谢了

支持(0) 反对(0) 钱恩基 | 园豆:198 (初学一级) | 2016-03-16 15:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册