2015年4月11日土曜日

Dispatcher を利用した非同期処理


WPF でメインスレッドとは異なるスレッドで非同期処理を行う際には、Dispatcher を使います。
タイミングの問題で UI エレメントに正しくアクセス出来ない時に使っています。本来は並列処理など違う用途で威力を発揮するんだと思います。


C#
private void Button_Click(object sender, RoutedEventArgs e)
{
    Debug.WriteLine("メインスレッド1");
    
    this.Dispatcher.BeginInvoke(
     new Action(() =>
     {
         // 時間のかかる処理を実行
         Debug.WriteLine("別スレッド");
     })
    );

    Debug.WriteLine("メインスレッド2");
}

VB.NET
Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
    Debug.WriteLine("メインスレッド1")
    Me.Dispatcher.BeginInvoke(
    Sub()
        ' Dispatcherを利用してUIスレッドに処理を配送
        ' 時間のかかる処理を実行
        Debug.WriteLine("別スレッド")
    End Sub)
    Debug.WriteLine("メインスレッド2")
End Sub

2015年4月4日土曜日

Eclipse と Tomcat で Java サーブレットアプリケーションを作成

Pleiades All in One の Eclipse を利用して簡易に Java サーブレットを作成する方法を記します。

----------------------------------------------------------------

Pleiades All in One のウェブサイトから Eclipse をダウンロードします。

Pleiades All in One ダウンロード
http://mergedoc.sourceforge.jp/

Eclipse を起動し、「パッケージ・エクスプローラー」上で右クリックします。表示されるコンテキストメニューから「新規」→「プロジェクト」を選択します。




ダイアログが開いたら、「プロジェクト名」に任意の名前(ここでは MyApp1)を入力します。




そのまま「次へ」を選択します。

続いて「完了」を選択します。



プロジェクトが生成されました。



続いてはプロジェクトにサーブレットを作成します。サーブレットのテンプレートはプロジェクトを右クリックして表示されるコンテキストメニューから、「新規」→「サーブレット」を選択します。


パッケージ名に「test」、クラス名に「TestServlet」とそれぞれ名前をつけます。


URL マッピングに 「/TestServlet」と表示されていることを確認します。「次へ」を選択します。



「完了」を選択します。



src フォルダ配下に test\TestServlet.java が生成されました。




doGet に下記の内容を記述し、レスポンスとしてブラウザに HTML を出力します。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  // TODO Auto-generated method stub

  response.setContentType("text/html; charset=Windows-31J");
  PrintWriter out = response.getWriter();

     out.println("<html>");
     out.println("  <body>");
     out.println("  これは test です。");
     out.println("  </body>");
     out.println("</html>");
 }

続いて Tomcat をセットアップし、上記で作成した Java プロジェクトを実行できるようにします。
「サーバー」ビューから下記リンクをクリックします。


 ここでは Tomcat6 を選択します。


MyApp1 を追加します。


追加し、「完了」を選択します。





「http://localhost:8080/MyApp1/TestServlet」にアクセスして実行結果を確認します。

KB3033889 : エクスプローラやタスクバーが固まる不具合修正がリリース

Windows8 を使っていて、先日 WindowsUpdate を行ったらエクスプローラが固まる固まる。
現在は下記 URL より修正パッチを取得することができます。

Windows8
https://www.microsoft.com/ja-jp/download/details.aspx?id=46213
Windows8.1
https://www.microsoft.com/ja-jp/download/details.aspx?id=46199