本帖最后由 ownorg 于 2013-05-06 12:02:50 编辑

解决方案 »

  1.   


    把one,two写在一起不就可以了?
    Thread one_tow = new Thread((ThreadStart)delegate{
      outputone();
      outputtwo();
    });
      

  2.   

    如果是one线程”执行完了“ 那么你可以在执行完了之后加上two线程的start方法
      

  3.   

    是这样的:
    one线程我是想要返回个cookie!
    two线程是当点击按钮A的时候引用该cookie,
    three线程是点击按钮B的时候可以再次调用该cookie.因为在访问http延时过长,UI会无响应,所以想到了多线程!
    所以必须在one线程返回了cookie时,B线程才能调用啊,不然cookie为空的!
      

  4.   

    直接用一个线程应该可以搞定
    public void outputone() 
    {
      while(cookie不为空)
      {
         获取cookie
         sleep(1000);
      }
      处理cookie
    }
      

  5.   


     //testb不为空,outputtwo才执行!        //outputone和outputtwo为http请求!        public static string testb = null;        public void outputone()
            {
                Thread.Sleep(3000);//模拟延时
                textarea.Dispatcher.Invoke(new Action(() =>
                {
                    testb = "aaa";
                    textarea.Text += "cookie捕获完成!" + "\n";
                }));
            }        public void outputtwo()
            {
                textarea.Dispatcher.Invoke(new Action(() =>
                {
                    if (string.IsNullOrEmpty(testb))
                    {
                        textarea.Text += "数据为空,无法执行!" + "\n";
                    }
                    else
                    {
                        textarea.Text += "执行完成!" + "\n";
                    }
                }));
            }        private void Button_Click(object sender, RoutedEventArgs e)
            {
                Thread one = new Thread(new ThreadStart(outputone));
                Thread two = new Thread(new ThreadStart(outputtwo));
                one.Start();
                two.Start();
            }
      

  6.   

    为什么不用任务这么好的东西
      Task t = new Task(() => {... });
                t.Start();
                t.ContinueWith(()=>{...});
      

  7.   

    设个全局变量,在one中改变状态,two总如果状态未变循环等待,直到状态改变,two执行具体内容
      

  8.   

                one.Start();
                one.Join();
                two.Start();