質問

私は新しいでYouTubeデータのAPIとC#.したい検索の映像を表示し、その結果、listviewとなったのだったので非同期.私検索してみてくだ終わいます。

http://google-gdata.googlecode.com/svn/docs/folder48/Multithreadedoperations.html

力を貸してください。

役に立ちましたか?

解決

最WebService API(特に 休み検査結果が陽性のもの)を非同期に取得結果、一般には出することができるでしょうかは無国籍:私はYoutubeのAPI例外ではありません。

代わりに、無駄の伝統的なシミュレ-ション手法の非ご要望などについ

  • く、ページごとに区切ご要望-ごみ火をつとしてユーザーのスクロールを通じての成果、すな左に表示されます。この手段が少ない仕事についての申請ごとに、UIとなりますがロックになっています。
  • だから、使用する場合がありま専用のスレッドの取得結果ィードバックのスレッドの更新を行おUI.この確なUIはどのような対応のアイデンティティ、サーバーにコピーします。
  • また、イベントベースワークを実装する 原子炉のパターン)を承りますのでご相談ください。下のような枠組みで火災offの要請やコールバック関数の結果を可能にし、他のことを知ることができるからです。このモデルでの貿易に必要なミューテックス保護の共有データ(使用時にスレッドに対する楽-)より複雑にコールバックモデルです。

[編集:ます。純見る などの原子炉に基づくアプローチ]

いていかなければなりません約YouTubeに関す:きの技術が既に大きな結果セットからのAPIです。

他のヒント

あなたは、非同期デリゲートを使用して非同期呼び出し中以外非同期メソッドをラップすることはできませんか?私の参照は、このリンクである。

[OK]をので、あなたがあなたの非同期呼び出しを行いました。このような何か...

private delegate <returnType> YouTubeAPI( <args> )
private YouTubeAPI func;
private IAsyncResult ticket;

void YouTubeSearchFunc( string what )
{
    func = <whatever the you tube call is>
    ticket = func.BeginInvoke( <args needed> );
    // WE MUST do this in order to return flow of control to program
    return;
}

// later we need to check if the ticket is done and then get it
if ( ticket.IsComplete == true )
    // get it
else
    // continue on like normal
それはプログラムをブロックしますので、

私たちはすぐに値を取得傾ける理由があります。これは、私たちが行うにはしたくない、まさにです。だからではなく、私たちはその個別のアップデートで行わかどうかを確認する方法でプログラムを構築する必要があります。それはそれハングのように見えないように、これはウィン・フォームやGTKの実行をすることができます。残念ながら、これはお尻の痛みです。あなたはおそらく、やりたいことは、単にバックグラウンドワーカーを使用しています。この部分を読んで HERE と、これはより多くのあなたを助けていないかどうかを確認BackgroundWorkers理由コールバックを持つことができます。その後、すべてあなたがしなければならないが、バックグラウンドワーカーを設定された後、完了したイベントにあなたの更新機能をフックます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top