zoukankan      html  css  js  c++  java
  • invoke和begininvoke的用法 多线程??

            //声明接受int的方法并返回空的委托。
            public delegate void invokeDelegate();
            //调用委托,
            // invokeDelegate FF = new invokeDelegate(StartMethod);
    
            private void button1_Click(object sender, EventArgs e)
            {
                MessageBox.Show(Thread.CurrentThread.GetHashCode().ToString() + "主线程1 最先执行"); // 最先执行
                Thread invokeThread = new Thread(new ThreadStart(StartMethod)); //委托创建线程
                invokeThread.Start(); //开始线程
    
    
                string a = string.Empty;
                for (int i = 0; i < 10; i++)      //调整循环次数,看的会更清楚
                {
                    Thread.Sleep(1000);
                    a = a + "循环执行";
                }
                MessageBox.Show(Thread.CurrentThread.GetHashCode().ToString() +"主线程1"+ a);
                
            }
    
            private void StartMethod()
            {
                MessageBox.Show(Thread.CurrentThread.GetHashCode().ToString() + "主线程1 第二执行");
                button1.Invoke(new invokeDelegate(invokeMethod)); //传递一个委托的方法;  依赖此控件来执行委托
                //Thread.Sleep(3000);
                MessageBox.Show(Thread.CurrentThread.GetHashCode().ToString() + "子线程1");
            }
            private void invokeMethod()
            {
                //Thread.Sleep(5000);
                MessageBox.Show(Thread.CurrentThread.GetHashCode().ToString() + "主线程1 _执行委托方法");
            }
    
            static void GetFile(string s)
            {
                try
                {
                    FileInfo fi = new FileInfo(s);
                    Console.WriteLine("文件路径:{0}", s);
                    Console.WriteLine("文件名称:{0}", fi.Name.ToString());
                    Console.WriteLine("文件类型:{0}", fi.Extension.ToString());
                    Console.WriteLine("文件大小:{0} K", fi.Length / 1024);
                    Console.WriteLine("文件创建时间:{0}", fi.CreationTime.ToString());
                    Console.WriteLine("上次访问时间:{0}", fi.LastAccessTime.ToString());
                    Console.WriteLine("上次写入时间:{0}", fi.LastWriteTime.ToString());
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
  • 相关阅读:
    jquery 停止animate动画,并且回复最初状态
    php mysql实体字符
    ECSHOP MYSQL 公用类库中的autoExecute方法
    ecshop 订单编号 get_order_sn
    ecshop 调用收货地址
    init.php 建立自己的前端共享文件
    php 生成随机字符串 abcdeft....789
    ecshop 订单-》订单状态 2
    ecshop后台,listtable.js使用
    ecshop Admin后台商品列表处(上架、下架、精品...取消精品)增加操作
  • 原文地址:https://www.cnblogs.com/enych/p/12582858.html
Copyright © 2011-2022 走看看