none
請問Thread的基本用法 RRS feed

  • 問題

  • 我正在用Visual C#寫一個下棋的程式,現在遇到的問題是,程式在想棋步的時候,程式就沒有辦法回應使用者。

    可是我不知道thread要怎麼用,翻書又找不到,可以針對我的問題給我一個簡單的範例嗎。

    簡單表示起來,我的程式類似下面這樣,我希望Evaluate()可以在另一個thread執行,然後針對棋盤(按鈕陣列)回傳一個值,(我不知道thread可以傳值回來嗎。以及存取像按鈕那些物件的狀態。)而主程式要等值傳回來後,才能繼續下面的動作。這期間使用者如果亂按,應該是要不予理會的。Thread在執行的時候有沒有辦法讓MouseClick()不會再被觸發呢?

    望請各位指點,謝謝!!

     

     

    namespace othello
    {
        public partial class Form1 : Form
        {


            public Form1()
            {
                InitializeComponent();
            }

     

            void Form1_MouseClick(Object sender, MouseEventArgs e)

            {

            AI();

            }

           

            void AI()

            {

         Value = Evaluate();

         otherAct();

        

            }

           Evaluate()

           {

       //Long time

           }

     

        }

    }

    2008年8月10日 下午 04:01

解答

所有回覆