2012-04-05 10 views
1

3つの方法のいずれかを使用してメソッドを呼び出すことの違いは何ですか? 3つの方法のいずれかでメソッドを呼び出すことの違いは何ですか?

  • 起動
  • て同期呼び出し
  • 非同期BeginInvokeメソッドを介してコールし、その代わりにEndInvokeを
  • 私はすべてのコールは、ボンネットの下に一致するデリゲートを使用すると仮定していますが、新しいスレッドの作成を経由して

    +0

    ここでどの言語が使用されていますか?あなたは 'BeginInvoke'と' EndInvoke'コードであなたの質問を編集できますか?多分それはそれについて知っている人には明らかになりますが、私にとってはそうではありません。 – Gray

    +0

    .NETのように見えます。特にユーザーの名前と質問の詳細が... –

    +1

    BeginInvoke/EndInvokeがある場合、@Grayは.NETプラットフォームのように見え、OPのユーザー名にはドットNETが含まれています。 – Kiril

    答えて

    1

    (これらの3つのオプションは、delegateを使用するさまざまな方法です。

    新しいスレッドを作成すると、具体的には「メソッドを呼び出す」というわけではなく、指定されたデリゲートを新しいスレッド内で実行するメソッドとして新しいスレッドを開始します。これにより、新しいスレッドがすべて起動され、別のスレッド内でデリゲートが実行されます。

    BeginInvoke/EndInvokeを介して非同期的にデリゲートを呼び出すことは、新しいスレッドを作成する代わりにThreadPoolを使用する点を除いて同様です。

    Invokeを介して同期してデリゲートを呼び出すと、現在実行中のスレッドでデリゲートが直接呼び出されます。これは、デリゲートによって参照されているメソッドを呼び出すだけです。

    +0

    別名スレッドと非同期呼び出しでデリゲートを実行するとどちらもバックグラウンドプロセスですか? – rajibdotnet

    関連する問題