C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: BeginInvokeの引数が難しい〜


(過去ログ 121 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■72691 / inTopicNo.1)  BeginInvokeの引数が難しい〜
  
□投稿者/ よしむら (20回)-(2014/07/06(Sun) 09:17:56)

分類:[C#] 

書き込みが消えてしまっていたので再投稿です。
http://ufcpp.net/study/csharp/sp_delegate.html
を参考に作ったのですが、

ボタンクリック1のイベントの
IAsyncResult ar = asyncCall.BeginInvoke();
の引数に何を書けばいいかわかりません。

どなたか教えて下さい。
プログラムの内容はマルチスレッドで、メッセージボックスを2つ出すだけというものです。




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;

namespace derigemaruti
{
    public delegate void ShowMessage();
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            ShowMessage asyncCall = new ShowMessage(AsynchronousMethod);
            IAsyncResult ar = asyncCall.BeginInvoke();
            MessageBox.Show("メインタスクです。");
            asyncCall.EndInvoke(ar);
            MessageBox.Show(" 処理完了");
        }

        static void AsynchronousMethod()
        {
            MessageBox.Show("サブタスクです。");
        }
         static void B(IAsyncResult ar){}
    }
   
}


引用返信 編集キー/
■72693 / inTopicNo.2)  Re[1]: BeginInvokeの引数が難しい〜
□投稿者/ WebSurfer (309回)-(2014/07/06(Sun) 14:44:20)
No72691 (よしむら さん) に返信
> 書き込みが消えてしまっていたので再投稿です。
> http://ufcpp.net/study/csharp/sp_delegate.html
> を参考に作ったのですが、
>
> ボタンクリック1のイベントの
> IAsyncResult ar = asyncCall.BeginInvoke();
> の引数に何を書けばいいかわかりません。

参考にされているページに書いてある通り、即ち以下の通りです。

(1) デリゲート型の定義時に引数リストで指定した引数
(2) System.AsyncCallback デリゲート型の引数
(3) object 型

質問者さんのサンプルでは、ShowMessage は引数を取らないので (1) はなし、(2) と
(3) は null でいいはずです。

IAsyncResult ar = asyncCall.BeginInvoke(null, null);


(2) と (3) を使う場合の例は、以下のページの最後のサンプル「非同期呼び出し完了
時のコールバック メソッドの実行」を見てください。

同期メソッドの非同期呼び出し
http://msdn.microsoft.com/ja-jp/library/2e08f6yc(v=vs.110).aspx
引用返信 編集キー/
■72704 / inTopicNo.3)  Re[2]: BeginInvokeの引数が難しい〜
□投稿者/ よしむら (21回)-(2014/07/07(Mon) 22:26:05)
できましたーありがとうございます。




No72693 (WebSurfer さん) に返信
> ■No72691 (よしむら さん) に返信
>>書き込みが消えてしまっていたので再投稿です。
>>http://ufcpp.net/study/csharp/sp_delegate.html
>>を参考に作ったのですが、
>>
>>ボタンクリック1のイベントの
>>IAsyncResult ar = asyncCall.BeginInvoke();
>>の引数に何を書けばいいかわかりません。
>
> 参考にされているページに書いてある通り、即ち以下の通りです。
>
> (1) デリゲート型の定義時に引数リストで指定した引数
> (2) System.AsyncCallback デリゲート型の引数
> (3) object 型
>
> 質問者さんのサンプルでは、ShowMessage は引数を取らないので (1) はなし、(2) と
> (3) は null でいいはずです。
>
> IAsyncResult ar = asyncCall.BeginInvoke(null, null);
>
>
> (2) と (3) を使う場合の例は、以下のページの最後のサンプル「非同期呼び出し完了
> 時のコールバック メソッドの実行」を見てください。
>
> 同期メソッドの非同期呼び出し
> http://msdn.microsoft.com/ja-jp/library/2e08f6yc(v=vs.110).aspx
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -