BeginInvoke会重新开一个线程

 t = new Thread(new ThreadStart(delegate
            {
                Play(sender, e);
                Console.WriteLine("Play ended.");
            }));
            t.Start();
  private void Play(object sender, EventArgs e)
        {
            Console.WriteLine("InvokeRequired = " + InvokeRequired);
            if (InvokeRequired)
            {
                Invoke(new PlayDelegate(Play), sender, e);
                return;
            }
} 

这里应该使用 Invoke,避免使线程t死掉

原文地址:https://www.cnblogs.com/liuxinls/p/2986800.html