• net 2.0 中如何在线程引发的事件中控制forms controls


    这个是安全方法.

     private void Form1_Load(object sender, EventArgs e)
            
    {
                Post p 
    = new Post();
                p.OnPost 
    += new Post.OnPostHandler(p_Post);
                t 
    = new Thread(new ThreadStart(p.Go));
            }


            
    void p_Post(int m, string result)
            
    {
                
    if (this.textBox1.InvokeRequired)
                
    {
                    Post.OnPostHandler d 
    = new Post.OnPostHandler(p_Post);
                    
    this.Invoke(d,new object[]{m,result});
                   
                }

                
    else
                
    {
                    
    this.textBox1.Text = m.ToString();
                }

               
            }

    class Post
        
    {
           
    public Post()
           
    {
           }

            
    public delegate void OnPostHandler(int m,string result);
            
    public event OnPostHandler OnPost;
            
    private static int count = 0;
            
    public void Go()
            
    {

                WebClient webClient 
    = new WebClient();
                webClient.Headers.Add(
    "Accept""image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,*/*");
                webClient.Headers.Add(
    "Referer""http://www.xmsell.com/zhuanti/jjworld/match_show.asp?id=3");
                webClient.Headers.Add(
    "Accept-Language""zh-cn");
                webClient.Headers.Add(
    "Content-Type""application/x-www-form-urlencoded");
                webClient.Headers.Add(
    "Accept-Encoding""gzip, deflate");
                webClient.Headers.Add(
    "User-Agent""Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1;)");
                
    string postStr = "Grade=%CD%B6%CB%FB%D2%BB%C6%B1%A3%A1%A3%A1%A3%A1&Submit=+%CD%B6+%C6%B1+";
                
    byte[] data = Encoding.ASCII.GetBytes(postStr);
                
    while (true)
                
    {
                    count
    ++;
                    
    byte[] responseArray = webClient.UploadData("http://www.xmsell.com/zhuanti/jjworld/match_show.asp?action=add&id=3""POST", data);
                    
    // Thread.Sleep(500);
                    string responseStr = Encoding.GetEncoding("Gb2312").GetString(responseArray);

                    
    if (OnPost != null)
                    
    {
                        OnPost(count, responseStr);
                    }

                }

            }

        }
  • 相关阅读:
    动手学深度学习 | 使用和购买GPU | 15
    工作生活及未来畅想 —— 杂谈
    线段树 乌鸦喝水
    测试开发进阶——常用中间件概念——JNDI树理解(转载)
    测试开发进阶——常用中间件概念——JMX监听器理解
    测试开发进阶——常用中间件概念——JMS(Java消息服务)入门&基于Tomcat + JNDI + ActiveMQ实现JMS的点对点消息传送理解(转载)
    测试开发进阶——Servlet ——Servlet异常处理
    测试开发进阶——Servlet ——Servlet发送电子邮件
    测试开发进阶——Servlet ——Servlet上传文件到服务器
    测试开发进阶——Servlet ——Servlet通过JDBC进行数据库访问
  • 原文地址:https://www.cnblogs.com/lovebanyi/p/300847.html
Copyright © 2020-2023  润新知