解决方案 »

  1.   

    线程调度需要自己来实现保存线程的handler,然后设置状态, busy 或者 freebusy表示工作遍历一下哪些在工作,suspend就可以了
      

  2.   

    using System;
    using System.Threading;
    using System.Threading.Tasks;
    using System.Windows.Forms;namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();            var lockObj = new object();
                Task.Factory.StartNew(() =>
                {
                    while (true)
                    {
                        lock (lockObj)
                        {
                        }
                        Invoke((Action)(() => { Text = DateTime.Now.ToString(); }));
                    }
                });            button1.Click += (o, e) =>
                {
                    Monitor.Enter(lockObj); //暂停子线程
                    Thread.Sleep(5000); //你要执行的函数
                    Monitor.Exit(lockObj); //继续子线程
                };
            }
        }
    }
      

  3.   

    我才看到,不好意思,你能不能解释一下  Task.Factory.StartNew(() =>和button1.Click += (o, e) =>
      

  4.   

    线程里面放一个Event,主线程Set它。例子程序
    http://msdn.microsoft.com/zh-cn/library/system.threading.autoresetevent(v=vs.110).aspx