Пример #1
0
        public static void Main_S()
        {
            Console.WriteLine("===== 同步调用 SyncInvokeTest =====");
            AddHandler handler = new AddHandler(AddClass.Add);
            int        result  = handler.Invoke(1, 2, 3);

            Console.WriteLine("继续做别的事情。。。");

            Console.WriteLine(result);
        }
Пример #2
0
 private void AddWordButton_Click(object sender, EventArgs e)
 {
     AddWord();
     if (AddedWords.Count == 0)
     {
         return;
     }
     AddHandler?.Invoke(this, null);
     Close();
 }
        /// <summary>
        /// 同步方法
        /// </summary>
        public void Synchronized_Method()
        {
            Console.WriteLine("===== 同步调用 SyncInvokeTest =====");
            AddHandler handler = new AddHandler(Add);

            //invoke后阻塞主进程,直到handler执行完毕
            int result = handler.Invoke(1, 2);

            Console.WriteLine("继续做别的事情。。。");
            Console.WriteLine(result);
        }
Пример #4
0
        public static void SynchronizationFun()
        {
            Console.WriteLine("===== 同步调用 SyncInvokeTest =====");

            AddHandler handler = new AddHandler(Additive.Add);
            //同步的效果就是当前的线程必须阻塞,得到result结果的返回,在winform下就会造成界面的假死

            //“委托人”去Invoke
            int result = handler.Invoke(1, 2);

            //直到委托执行的方法完全完成 下面才会执行
            Console.WriteLine("继续做别的事情。。。");
            Console.WriteLine(result);

            Console.ReadKey();
        }