public struct qrypara
        {
            public string keyword;
            public CookieContainer cookie;
            public int pos;
            public string url;
            public string qryurl;
            public string errorlog;
        }
private void queryhk(object paraob)
        {
            qrypara qry = (qrypara)paraob;
            try
            {
                此处省略不相关代码....
                int pos = 0;
                ..............
                qry.pos = pos;
                paraob = qry;
            }
            catch (Exception rqste)
            {
                MessageBox.Show(rqste.ToString());
                paraob = qry;
            }
        }
这样子 获取不到返回值是为什么  ??多线程线程池

解决方案 »

  1.   

    额 抱歉  多线程 的代码忘记贴出来了   
    //结构体数组
    public struct qrypara
            {
                public string keyword;
                public CookieContainer cookie;
                public int pos;
                public string url;
                public string qryurl;
                public string errorlog;
            }
    ThreadPool.SetMaxThreads(maxthrd, maxthrd);
    //循环添加线程
    for (int i = 0; i < keytext.Lines.Count();i++ )
                    {
                        qry[i].keyword = keytext.Lines[i].ToString();
                        qry[i].cookie = cookie;
                        qry[i].pos = -1;
                        qry[i].qryurl="";
                        qry[i].url = urltxt.Text;
                        keylist.Add(keytext.Lines[i].ToString());
                        ThreadPool.QueueUserWorkItem(new WaitCallback(queryhk), qry[i]);
                    }
    //多线程调用的方法
    private void queryhk(object paraob)
            {
                qrypara qry = (qrypara)paraob;
                try
                {
                    此处省略不相关代码....
                    int pos = 0;
                    ..............
                    qry.pos = pos;
                    paraob = qry;
                }
                catch (Exception rqste)
                {
                    MessageBox.Show(rqste.ToString());
                    paraob = qry;
                }
            }
    初学者  问的不是很清楚 希望斑竹体谅啦  在线等
      

  2.   

    换成struct   那我有10个线程 就会获得10组返回值 要怎么写呢