none
如何在没有控件的情况下在指定线程执行委托? RRS feed

  • 问题

  • 如题。

    在有空间的情况下,我可以使用 Invoke 或 BeginInvoke,但如果我编的是控制台程序,我在子进程中想让主进程执行一个委托该怎么办?


    EFanZh
    2010年6月17日 7:19

答案

全部回复

  • 你好 你说的是子线程吗?

    你可以在子线程的回调函数中执行主线程中的方法


    I see you~http://hi.baidu.com/1987raymondMy Blog~~~
    2010年6月17日 8:00
    版主
  • 参见如下代码 (C#):

    using System;
    using System.Threading;
    
    namespace Test
    {
      class Program
      {
        class MyClass
        {
          private delegate void f3delegate();
          private Thread t1, t2;
    
          public MyClass()
          {
            t1 = new Thread(new ThreadStart(f1));
            t2 = new Thread(new ThreadStart(f2));
          }
    
          private void f1()
          {
            Console.Write("f1.\n");
            // 在线程 t2 执行委托 "new f3delegate(f3)"。
          }
    
          private void f2()
          {
            Console.Write("f2.\n");
            // 在线程 t1 执行委托 "new f3delegate(f3)"。
          }
    
          private void f3()
          {
            Console.Write("f3.\n");
          }
    
          public void Start()
          {
            t1.Start();
            t2.Start();
          }
        }
    
        private static void Main()
        {
          (new MyClass()).Start();
        }
      }
    }
    
    如何实现注释部分的功能?
    2010年6月17日 8:30
  • 补充:关于注释部分,如果有控件了的话可以使用 Control.Invoke(new f3delegate(f3)) 来实现。


    EFanZh
    2010年6月17日 12:04
  • 控制台没有消息泵,不需要
    • 已标记为答案 EFanZh 2010年6月26日 11:33
    2010年6月21日 4:04