2012-12-14 90 views
6

到目前爲止,我一直試圖通過立即在我的項目中實現線程來掌握線程。我一直試圖這麼做很長時間。但是這並沒有產生任何結果,也沒有給我任何線程方面的經驗。嘗試給我的唯一的印象是C#中的線程有很多重要的改進。C#線程:初學者練習

我找不到任何關於線程的簡單練習。我正在尋找練習,你必須製作不同的簡單控制檯應用程序。我正在尋找簡單的練習,所以我可以瞭解在使用線程和掌握該想法時事情是如何工作的。隨着問題數量的增加,我已經看到了一本難度更高的編程練習書。我正在尋找類似的東西。之後我會繼續使用更復雜的東西,並嘗試在我的項目中添加線程(這是使用Windows窗體創建的)。

我在哪裏可以找到有關線程在C#中的練習/練習冊?

編輯:

我不找任何教程 - 我能找到他們自己。我只搜索練習和練習。如果沒有這樣的練習,請告訴我。

+0

退房本書的Visual C#2012互動確實有關線程和任務工廠 – cpoDesign

+0

一件事個蓋負荷at很難認識到線程並不能提高大多數應用程序的性能。在使用它之前,確定你需要它。 –

+0

我確定我需要它。 – AlexSavAlexandrov

回答

7

簡單的練習副本:

1)改變代碼的工作(學習的榜樣)

  • 打開任何教程
  • 查找代碼示例
  • 玩鱈魚Ë樣品,看到什麼可行,什麼不可行
上SO(由教學學會)

  • 發現一個有趣的問題

    2)答題

  • 答案吧(你應該做一個調查做這一點)
  • 談話,並與其他用戶
+0

好主意。謝謝! – AlexSavAlexandrov

0

線程是非常簡單的。下面是關於它的熱門鏈接:http://www.albahari.com/threading/

基礎:

創建返回void和不帶參數的方法。像這樣:

private void MyThreadMethod() 
{ 
    //Some code here. 
} 

要在線程中調用該方法,只需在窗體上的按鈕中執行此操作。

var thread = new Thread(new ThreadStart(MyThreadMethod)); 
thread.Start(); 

這將創建一個線程並啓動它並運行MyThreadMethod中的代碼。

現在,魔鬼在細節中。線程安全和線程管理是線程和多任務處理的真正領域。另一個需要考慮的是線程對比任務更方便用戶。

+0

這就是爲什麼我需要練習:爲了掌握知識 - 我無法立即在我的項目中實現它。 – AlexSavAlexandrov

+0

訪問我的帖子頂部的鏈接。它有幾個級別的教程。我真的認爲它會給你你需要的東西。 – jmrnet

+0

我需要練習,而不是教程,通過這些練習我可以將知識轉化爲技能。 – AlexSavAlexandrov

4

Joseph Albahari有一篇很棒的文章,名字叫Threading in C#。這是一篇非常酷的博客文章,關於在C#中開始學習線程技術。約瑟夫清楚地解釋:

  • 介紹和概念
  • 加入和睡眠
  • 如何線程作品
  • 創建和啓動線程
  • 線程池

並檢查從CodeProject this出來的文章。

  • 入門實例化一個Thread對象並調用其 Start方法開始

您可以創建並啓動一個新的線程。Thread最簡單的構造函數需要一個ThreadStart委託: 一個無參數的方法,指示執行應該開始的地方。

using System; 
using System.Threading; 

class ThreadTest 
{ 
    static void Main() 
    { 
     Thread t = new Thread (WriteY); // Kick off a new thread 
     t.Start(); // running WriteY() 
     // Simultaneously, do something on the main thread. 
     for (int i = 0; i < 1000; i++) Console.Write ("x"); 
    } 
    static void WriteY() 
    { 
     for (int i = 0; i < 1000; i++) Console.Write ("y"); 
     } 
} 

// Output: 
xxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy 
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyy 
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxxxxxxxxxxxxxxxxxxxxx 
xxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy 
yyyyyyyyyyyyyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
... 

如果您想了解線程深深得到C# 4.0 in a Nutshell

+0

關於兩個進度條的教程很好。但你的回答仍然沒有回答我的問題。 – AlexSavAlexandrov