http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 7675|回复: 14

[其他] 多线程问题

[复制链接]
发表于 2013-11-1 10:46:59 | 显示全部楼层 |阅读模式
[code=csharp] private void button4_Click(object sender, EventArgs e)
        {
            button4.Enabled = false;
            int n = dataGridView1.RowCount;
            for (int i = 0; i < n; i++)
            {
                Thread thread = new Thread(new ThreadStart(delegate
                {
                    Html_buy(i);
                }));
                thread.IsBackground = true;
                thread.Start();
                Thread.Sleep(200);
            }
        }
private void Html_buy(int i)
        {

            string str_userID = read_datagridview_ret_userID;
            string str_type = read_datagridview_ret_type;      
            WebLogin weblogin = new WebLogin();
            weblogin.Get_buy_1(str_userID, pictureBox1, str_type, textBox4.Text, textBox5.Text);
        }
//---------从datagridview中读数据
public delegate string MyInvoke3(int i);
        private string read_datagridview_ret_userID(int i)
        {
            string str_userID = "";
            if (dataGridView1.InvokeRequired)
            {
                MyInvoke3 _myInvoke3 = new MyInvoke3(read_datagridview_ret_userID);
                this.Invoke(_myInvoke3, new object[] { i });
                str_userID = dataGridView1.Rows.Cells[0].Value.ToString();
            }
            else
            {
                str_userID = dataGridView1.Rows.Cells[0].Value.ToString();
            }
            return str_userID;
        }[/code]
请大神看看哪里错了,我需要根据行数来开线程,一行开一条线程。
但是我写的每条线程读的都是同一条数据。



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-11-1 11:04:35 | 显示全部楼层
把线程去了,自己调试一下直接执行这个方法得到的是什么,应该你就明白了
 楼主| 发表于 2013-11-1 11:12:36 | 显示全部楼层
谢谢老大解释,我试试先
发表于 2013-11-1 11:20:07 | 显示全部楼层
恩好
回复

使用道具 举报

 楼主| 发表于 2013-11-1 11:40:25 | 显示全部楼层
去掉线程是正常的,但是我需要开线程,该怎么做,老大,我看你的那个网站压力测试列子就是这样的做的,我这样写怎么不行呢
发表于 2013-11-1 11:43:44 | 显示全部楼层
qiouqfz 发表于 2013-11-1 11:40
去掉线程是正常的,但是我需要开线程,该怎么做,老大,我看你的那个网站压力测试列子就是这样的做的,我这 ...

你的跟我的都不是一个概念的,情况不一样,你这个单看代码感觉没什么问题,不太明白你说的都一样是什么意思
发表于 2013-11-1 11:58:12 | 显示全部楼层
你把你需求详细说说吧。。
发表于 2013-11-1 12:00:46 | 显示全部楼层
另外提醒下,你回复我要单击我下方的回复
 楼主| 发表于 2013-11-1 12:05:42 | 显示全部楼层
我在19行设了断点,调试的时候运行到19行,显示i=0,按F11,并没有进string str_userID = read_datagridview_ret_userID(i);显示i=1,在按一次F11才进这个函数里面
 楼主| 发表于 2013-11-1 12:11:51 | 显示全部楼层
[img] [/img]
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-23 10:38

© 2014-2021

快速回复 返回顶部 返回列表