private void ThreadPoolExecFunc(object o)
 {
     int res = SheepCountFunc((int)o);
     if (SheepCountEevent != null)
     {
         SheepCountEventArgs a = new SheepCountEventArgs(res);
         SheepCountEevent(this, a);
     }
 }
        void OnSheepCountEeventCompleted(object sender, SheepCountEventArgs e)
        {
            // 线程池 和新线程方案需要把task dispatch到UI线程上
            //Deployment.Current.Dispatcher.BeginInvoke(()=>
            //    {
            //        MessageBox.Show("OK, now we have " + e.finalNumber.ToString() + " sheeps!");
            //    });

            // backgroundworker 的线程是IO线程

            textBlock_addText("OK, async call completed!  now we have " + e.finalNumber.ToString() + " sheeps! \n");
        }