troushoo

Visual Studio 2012の新機能: 並列ウォッチ

Visual Studio 2012からの新機能並列ウォッチについて記述します。並列ウォッチは、各スレッドの変数の値を確認できるので、マルチスレッドアプリの開発のデバッグに役に立ちます。

今回使用するアプリ
スレッドを4つ作成し、変数iを表示するだけの単純なマルチスレッドアプリを使用して並列ウォッチの使用法を見てみます。

using System;
using System.Threading;
 
namespace MyParallel
{
    class Program
    {
        static void MyWork()
        {
            for (int i = 0; i < 9999; i++)
            {
                Console.WriteLine(i);
            }
        }
        static void Main(string[] args)
        {
            new Thread(new ThreadStart(MyWork)).Start();
            new Thread(new ThreadStart(MyWork)).Start();
            new Thread(new ThreadStart(MyWork)).Start();
            new Thread(new ThreadStart(MyWork)).Start();
        }
    }
}

並列ウォッチ
並列ウォッチを使用するには、デバッグ中に デバッグ→ウィンドウ→並列ウォッチとたどります。
並列ウォッチを起動
するとデフォルト時には、右下の部分に並列ウォッチのウィンドウが出てきます。
並列ウォッチ
”ウォッチ式の追加”の部分に変数(今回の例ではi)を入力すると、スレッドごとの変数の値がわかります。
スレッドごとの変数の値がわかる
Visual Studio デバッガの他のデバッガ機能同様、前回から変更があったものは赤色で表示されます。
また、デバッグ時の現在のスレッドは矢印で表示されます。(下図参照)
並列ウィンドウの特徴
フラグを付けて、フラグが設定されたスレッドのみを表示することも可能です。
たとえば、以下のようにID 1512と1848の二つのスレッドにフラグを付けた場合を見てみます。
フラグを設定
その後、並列ウォッチの左上の部分のアイコンをクリックします。
フラグを付けたスレッドのみ表示する
すると、フラグを付けたスレッド1512と1848のみが表示されます。
フラグを付けたスレッドのみが表示される

リンク
・What’s New For Parallelism in .NET 4.5
http://blogs.msdn.com/b/pfxteam/archive/2011/09/17/10212961.aspx


  1. 2012/08/07(火) 13:19:27|
  2. Visual Studio
  3. | トラックバック:0
  4. | コメント:0
<<WiresharkのIO Graph | ホーム | [Psscor2/Psscor4]!SyncBlk: デッドロックの調査>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://troushoo.blog.fc2.com/tb.php/71-8032b278
この記事にトラックバックする(FC2ブログユーザー)

スポンサーリンク

最新記事

月別アーカイブ

カテゴリ

ツール (78)
ネットワーク (37)
Wireshark (43)
Visual Studio (55)
WinDbg (33)
SOS・Psscor2/Psscor4 (25)
Linux (19)
コンテナ (4)
Azure (17)
Tips (19)
AD (6)
.NET (24)
Python (5)
Java (5)
英語 (1)
About Me (1)
未分類 (0)

全記事表示リンク

全ての記事を表示する

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する