主程序线程  
工作线程。
//============================
工作线程执行序列
{
    ....
    ....    在这里我怎么告诉主线程去做某一件事情,
    比如告诉主线程去执行一个函数,或则执行某一事件
   (如果是vc可以用windows消息通知主线程,然后主线程去响应)。    继续执行该工作线程的下一语句
    .........。
     ..............
    
}谢谢高手指点哦。

解决方案 »

  1.   

    用代理或者事件通知主线程
    C#里也可以调用api发送消息哦(工作线程一定要调用TranslateMessage和DispatchMessage)
      

  2.   

    第一种方法  你是说委托吗????
    invoke(委托,参数) 是不是这个?
    如果用事件通知 怎么实现??
    代码给来看看
      

  3.   

    using System;namespace ConsoleApplication1
    {
    /// <summary>
    /// Class1 的摘要说明。
    /// </summary>
    class Class1
    {
    /// <summary>
    /// 应用程序的主入口点。
    /// </summary>
    [STAThread]
    static void Main(string[] args)
    {
    Test test = new Test();
    System.Threading.Thread 主线程 = new System.Threading.Thread( new System.Threading.ThreadStart( test.主线程循环 ));
    System.Threading.Thread 工作线程 = new System.Threading.Thread( new System.Threading.ThreadStart( test.工作线程 ));
    主线程.Start();
    工作线程.Start();
    while ( true )
    {
    System.Threading.Thread.Sleep(10);
    }
    //
    // TODO: 在此处添加代码以启动应用程序
    //
    }
    }
    public delegate void MyEventHandler( object sender, EventArgs arg );
    public class Test
    {
    public event MyEventHandler 通知主线程事件;
    public void 主线程循环()
    {
        通知主线程事件 += new MyEventHandler(Test_通知主线程事件);
    while( true )
    {
    System.Threading.Thread.Sleep(1);
    }
    } public void 工作线程()
    {
    while( true )
    {
    if ( 通知主线程事件 != null )
    通知主线程事件( this, new EventArgs() );
    System.Threading.Thread.Sleep(500);
    }
    } private void Test_通知主线程事件(object sender, EventArgs arg)
    {
    System.Console.WriteLine( "收到工作线程通知了" );
    }
    }
    }
      

  4.   

    public delegate void MyEventHandler( object sender, EventArgs arg );
    这个委托怎么写都 可以的吧我测试了下  public delegate void MyEventHandler(string msg); 也没有问题的。随便问一下MyThread.Suspend();
      MyThread.Resume(); 好象这两个方法。net2005警告已经过时,但不是错误 可以使用
    那该用什么方法来代替比较好???马上给结贴了 呵呵~~~~~