6

これまでのところ、プロジェクトにスレッドをすぐに実装することで、スレッド化をマスターしようとしてきました。そして、私は長い間それをやろうとしてきました。しかし、これは何の結果ももたらしませんでしたし、スレッド化の経験もありませんでした。この試みによって得られた唯一のことは、C# のスレッド化には多くの重要な改良点があるという印象です。

スレッドに関する簡単な演習は見つかりませんでした。さまざまな単純なコンソール アプリケーションを作成する演習を探しています。スレッドを操作するときに物事がどのように機能するかを理解し、そのアイデアを習得できるように、簡単な演習を探しています。問題数が大きくなるにつれて難易度が高くなるプログラミング演習の本を見たことがあります。私は似たようなものを探しています。その後、さらに複雑なことを続けて、自分のプロジェクト (Windows フォームで作成) にスレッドを追加しようとします。

C# でのスレッド化に関する演習/演習の本はどこにありますか?

編集:

チュートリアルを探しているわけではありません。自分で見つけることができます。私はエクササイズとエクササイズのみを探しています。そのような演習がない場合は、教えてください。

4

3 に答える 3

7

簡単な演習:

1)機能するコードを変更する(例で学ぶ)

  • チュートリアルを開く
  • コードサンプルを探す
  • コードサンプルで遊んで、何が機能し、何が機能しないかを確認します

2)SOに関する質問に答える(教えることで学ぶ)

  • 面白い質問を見つける
  • それに答えてください(これを行うには調査を行う必要があります)
  • 他のユーザーと話し、対話する
于 2012-12-15T04:33:35.463 に答える
4

Joseph Albahari はThreading in C#というすばらしい記事を書いています。これは、C# でのスレッド化について学習を開始することについての非常にクールなブログ投稿です。ジョセフは次のように明確に説明しました。

  • 概要と概念
  • 参加して寝る
  • スレッド化の仕組み
  • スレッドの作成と開始
  • スレッドプーリング

そして、Codeproject の記事をチェックしてください。

  • 入門

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のコピーを入手してください。

于 2012-12-14T22:29:29.170 に答える
-1

スレッド化は非常に簡単です。これに関する人気のあるリンクは次のとおりです 。 http://www.albahari.com/threading/

基本:

void を返し、引数を取らないメソッドを作成します。このような:

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

スレッドでそのメソッドを呼び出すには、フォームのボタンでこれを行うだけです。

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

これにより、スレッドが作成されて開始され、MyThreadMethod.

さて、悪魔は細部に宿ります。スレッドの安全性とスレッドの管理は、スレッド化とマルチタスクの真の技術です。考慮すべきもう1つのことは、はるかにユーザーフレンドリーなスレッドとタスクです。

于 2012-12-14T22:28:24.080 に答える