シーケンシャルインボークと同時BeginInvoke

パブリックデリゲートvoidinvokeDelegate();
    public部分クラスForm1:Form
    {         public Form1()         {             InitializeComponent();         }



                a = a + "B";             }















            MessageBox.Show(Thread.CurrentThread.GetHashCode()。ToString()+ a);
        }


        private void StartMethod()
        {             MessageBox.Show(Thread.CurrentThread.GetHashCode()。ToString()+ "CCC");             button1.Invoke(new invokeDelegate(invokeMethod));             MessageBox.Show(Thread.CurrentThread.GetHashCode()。ToString()+ "DDD");         }



        private void invokeMethod()
        {             MessageBox.Show(Thread.CurrentThread.GetHashCode()。ToString()+ "EEE");         }

        /// <summary>
        ///首先進行行“ AAA”、再同時順行“ BBB”和“ CCC”、最后同時行行“ DDD”和“ EEE”
        /// </ summary>
        /// <param name = "sender"> </ param>
        /// <param name = "e"> </ param>
        private void button2_Click(object sender、EventArgs e)
        {             MessageBox.Show(Thread.CurrentThread.GetHashCode()。ToString()+ "AAA");             スレッドinvokeThread = new Thread(new ThreadStart(StartMethod2));             invokeThread.Start();             string a = string.Empty;             for(int i = 0; i <3; i ++)             {                 Thread.Sleep(100);                 a = a + "B";









            MessageBox.Show(Thread.CurrentThread.GetHashCode()。ToString()+ a);
        }

        private void StartMethod2()
        {             MessageBox.Show(Thread.CurrentThread.GetHashCode()。ToString()+ "CCC");             button1.BeginInvoke(new invokeDelegate(invokeMethod));             MessageBox.Show(Thread.CurrentThread.GetHashCode()。ToString()+ "DDD");         }     }




おすすめ

転載: blog.csdn.net/Hat_man_/article/details/115029051