2014-01-30 85 views
2

我怎樣才能在LinqPad運行下面的代碼C#程序謝謝...從類運行在LinqPad

class ThreadTest 
{ 
    bool done; 

    static void Main() 
    { 
     ThreadTest tt = new ThreadTest(); // Create a common instance 
     new Thread (tt.Go).Start(); 
     tt.Go(); 
    } 

    // Note that Go is now an instance method 
    void Go() 
    { 
     if (!done) { done = true; Console.WriteLine ("Done"); } 
    } 
} 

UPDATE

此示例 - 伴隨着所有的Nuts中C#5併發章節中的其他人可以作爲LINQPad示例庫下載。轉到LINQPad的示例TreeView,然後單擊「下載/導入更多示例」並選擇第一個列表。 - 喬阿爾巴哈里

+0

你試過了嗎?你得到什麼錯誤?您是否添加了對System.Threading的引用? –

+0

@DStanley它給NullReferenceException「對象引用未設置爲對象的實例。」 LINQPad.ExecutionModel.Server.RunQuery(QueryRunner runner)上的LINQPad.ExecutionModel.ClrQueryRunner.Run() – cilerler

+1

本示例以及Nuts中C#5的併發章節中的所有其他內容可作爲LINQPad示例庫下載。轉到LINQPad的示例TreeView,然後單擊「下載/導入更多示例」並選擇第一個列表。 –

回答

5

只是移動MainThreadTest它應該工作正常。您還需要做出(在那個點或internal)的類和方法public

static void Main() 
{ 
    ThreadTest tt = new ThreadTest(); // Create a common instance 
    new Thread (tt.Go).Start(); 
    tt.Go(); 
} 

public class ThreadTest 
{ 
    bool done; 
    // Note that Go is now an instance method 
    public void Go() 
    { 
     if (!done) { done = true; Console.WriteLine ("Done"); } 
    } 
} 

的「C#程序」是隱式包含在一個類中 - 移動main嵌套類內部可能混淆的執行人是在最外層的階層中尋找Main

+0

uppss對不起,斯坦利我的壞,我複製/粘貼錯誤的樣本,但現在更新。 – cilerler

+0

這是同樣的問題 - 請參閱我的編輯。 –