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);
                }
            }
  • 相关阅读:
    svn的使用
    判断某个ImageView的背景图是否是已知的背景图相等
    关于fragment点击穿透的问题
    使用fragment添加底部导航栏
    HTML基本格式
    Handler机制
    在Android studio中到入Eclipse
    关于即来即停app的功能
    Memcached 笔记与总结(8)Memcached 的普通哈希分布算法和一致性哈希分布算法命中率对比
    大数据对互联网金融的影响
  • 原文地址:https://www.cnblogs.com/enych/p/12582858.html
Copyright © 2011-2022 走看看