掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
マルチスレッド-非同期デリゲート-AsyncCallback-Debug.Print について (ID:148152)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
まさお と申します。 宜しくお願い致します。 WinXP Pro SP3,VB2010 Express SP1 です。 vb.netに関わるあるWebページ http://codezine.jp/article/detail/139?p=2 「非同期デリゲート」-「コールバックメソッドの使用」を参考に下記を作成しました。 下記において、Debug.Print に関して教えてください。 コンソールアプリケーションにすると Dos窓,又は イミディエイトウィンドウに 「1:」〜「8:」の全てが表示されます。 しかし、フォームアプリケーションにすると「2:, 4:, 6:, 8:」はConsole.WriteLineですから何も表示されないのは当然としても、 Debug.Printの「1:, 3:」は表示されますが「5:, 7:」がイミウィンドに表示されません。 原因は何でしょうか? 以上、宜しくお願い致します。 Class Class1 Delegate Function WriteStringAsyncDelegate(ByVal sleepTime As Integer) As Integer 'エントリポイント Public Shared Sub Main() Dim dlgt As New WriteStringAsyncDelegate(AddressOf WriteString) Dim ar As IAsyncResult = dlgt.BeginInvoke(1000, New AsyncCallback(AddressOf CallbackMethod), dlgt) Debug.Print("1:" & "Start") Console.WriteLine("2:" & "Start") Console.ReadLine() End Sub '非同期で呼び出すメソッド Private Shared Function WriteString(ByVal sleepTime As Integer) As Integer Debug.Print("3:" & Now.ToLongTimeString) Console.WriteLine("4:" & Now.ToLongTimeString) System.Threading.Thread.Sleep(sleepTime) Debug.Print("5:" & Now.ToLongTimeString) Console.WriteLine("6:" & Now.ToLongTimeString) Return 0 End Function 'コールバックメソッド Private Shared Sub CallbackMethod(ByVal ar As IAsyncResult) Dim dlgt As WriteStringAsyncDelegate = CType(ar.AsyncState, WriteStringAsyncDelegate) Dim ret As Integer = dlgt.EndInvoke(ar) Debug.Print("7:結果:{0}", ret) Console.WriteLine("8:結果:{0}", ret) End Sub End Class
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.