2012-12-14 9 views
6

これまで私は自分のプロジェクトにスレッドをすぐに実装することによってスレッドをマスターしようとしていました。そして、私は長い間それをやろうとしてきました。しかし、これは結果をもたらしていないし、スレッディングに関する経験も私に与えてくれませんでした。試行が私に与えた唯一の事は、C#でのスレッディングが多くの重要な細分化を持っているという印象です。C#スレッド:初心者のための練習

スレッドに関する簡単な演習が見つかりませんでした。私はあなたが異なる単純なコンソールアプリケーションを作らなければならない練習を探しています。私は単純な演習を探しているので、スレッドを使って作業してそのアイディアをマスターするときに、どのように動作するかを知ることができます。私は問題の数が増えるにつれて難しくなるプログラミング演習の本を見てきました。私は似たようなものを探しています。その後、私はもっと複雑なものを続け、私のプロジェクト(Windowsフォームで作られています)にスレッドを追加しようとします。

C#でのスレッドに関する練習問題集はどこで見つけることができますか?

EDIT:

私は、私は彼らに自分自身を見つけることができる任意のtutorials-を捜しているわけではありません。私は練習と練習だけを探しています。そのような練習がない場合は、教えてください。

+0

と対話ブックビジュアルC#2012をチェックし、それがスレッドやタスク工場 – cpoDesign

+0

一つ目についてカバーのロードを行いますスレッドの実装がほとんどのアプリケーションのパフォーマンスを向上させないということを実現するのは難しいです。あなたがそれを使用する前にそれが必要であることを確かめてください。 –

+0

私はそれが必要だと確信しています。 – AlexSavAlexandrov

答えて

7

シンプル演習のコピーを取得スレッド学びたいのであれば:

1)(例で学ぶ働く変更コード)

  • は、任意のチュートリアルを開きます
  • コードサンプルを見つける
  • play with cod Eサンプルは、どのような動作し、何を参照しない

  • は興味深い質問を見つける。)授業で学ぶ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

2つのプログレスバーに関するチュートリアルは素晴らしいです。しかし、あなたの答えはまだ私の質問に答えていません。 – AlexSavAlexandrov

関連する問題