none
C# 线程池大任务卡UI。 RRS feed

  • 问题

  •         private void button2_Click(object sender, EventArgs e)
            {

    ThreadPool.SetMaxThreads(30, 30); ThreadPool.SetMinThreads(30, 30); for (long i = 0; i < listView1.Items.Count; i++)

    ListView1的总数可能会达到,上10万for 就会卡UI;在总数几万的情况下还是提现不出卡UI。
    { listView1.Items[i].SubItems[1].Text = "等候中.."; List<object> lt = new List<object>(); lt.AddRange(new object[] { url, i, txt, Cookise, listView1.Items[i].Text }); ThreadPool.QueueUserWorkItem(new WaitCallback(Post), lt);


    public void Post(object obj)

    Thread.Sleep(20);
                List<object> ltobj = (List<object>)obj;

    HttpWebRequest...请求代码部分省略....

    if (HTML.IndexOf("完成") != -1)
                {
                    List<object> Ls = new List<object>();
                    Ls.Add(i);
                    Ls.Add("完成");

    this.Invoke(new Action<object>(this.ListI), Ls);

                }



    麻烦各位指点下,谢谢


    注明一下,是在点开始后就会出现卡UI,感觉就是在FOR 时,会卡上一段时间后,就正常了。
    • 已编辑 JJAVEN 2012年9月16日 5:00
    2012年9月16日 4:12

答案

全部回复