| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 576 人关注过本帖
标题:求助listview的多线程方式
只看楼主 加入收藏
eddybccn
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2020-1-28
结帖率:100%
  已结贴   问题点数:20  回复次数:4   
求助listview的多线程方式
///新手求助多线程怎么写

///listview数据
序号,IP地址,用户,密码 .....
1,192.168.1.11,admin,admin123,....
2,192.168.1.12,admin,admin123,....
3,192.168.1.13,admin,admin123,....
4,192.168.1.14,admin,admin123,....


Get_IP_State("192.168.1.11",21, "admin", "admin12345");
功能就是登录IP设备,取状态后显示到listview1中,listview2反馈错误数据
下面的是执行代码,想要求助逐行显示,多线程方式, 没有多线程300个IP地址,UI卡死3分多钟。
而且都是执行完了才显示、
          foreach (ListViewItem item in this.listView1.Items)
            {
                Get_IP_State(item.SubItems[1].Text,  item.SubItems[2].Text, item.SubItems[3].Text);
            }
            this.listView2.EnsureVisible(this.listView2.Items.Count - 1);
搜索更多相关主题的帖子: 多线程 admin item 显示 listview 
2020-03-17 23:39
zj891218
Rank: 2
等 级:论坛游民
帖 子:8
专家分:50
注 册:2017-7-19
  得分:0 
首先开启listview的双缓冲,开启一个子线程thread,task都可以,在子线程里面用委托跨线程更新
2020-03-18 21:52
zj891218
Rank: 2
等 级:论坛游民
帖 子:8
专家分:50
注 册:2017-7-19
  得分:20 
thread updateList = new thread(new threadstart(你的函数));
updateList.Isbackground = true;
...
updateList.start();

函数里面
listview.invoke(new methodinvoker(delegate()
{
    foreach (ListViewItem item in this.listView1.Items)
            {
                Get_IP_State(item.SubItems[1].Text,  item.SubItems[2].Text, item.SubItems[3].Text);
            }
            this.listView2.EnsureVisible(this.listView2.Items.Count - 1);
}))
2020-03-18 21:58
zj891218
Rank: 2
等 级:论坛游民
帖 子:8
专家分:50
注 册:2017-7-19
  得分:0 
双缓冲listview..GetType().GetProperty("DoubleBuffered", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(ListView,true,null);
2020-03-18 22:01
eddybccn
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2020-1-28
  得分:0 
谢谢,
2020-03-19 07:57
快速回复:求助listview的多线程方式
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.077159 second(s), 8 queries.
Copyright©2004-2020, BCCN.NET, All Rights Reserved