0

私はアプリケーションを開発していて、特定の API を使用しています。私が最もよく使用する方法の 1 つはこれです

GetData(param1,param2,object UserState, System.Action<AsyncResult<T>> callback {}); 

結果のラムダ式の間のすべてが{ }コールバックです(間違っている場合は修正してください)。私の問題はこれです、List<T>クラスレベルで宣言されています。コールバックコードを介してアイテムを追加すると、すべて正常に機能しますが、別のポイントからリストを使用しようとするList<T>と空になります。

なぜこれが起こっているのですか?修正はありますか?

また、ユーザーステートが何に使用されているか教えてもらえますか?

使用例

api.GetData(API.Mirror, id, null, result => { Item b = result.Data; ser.Add(b) } 

ここで、Item b はラップされたクラスで、ser はクラス レベルで宣言された Item の型です。

4

1 に答える 1

0
Any idea why this is happening ?

見るコードがないので、いいえ。しかし、とにかく推測しましょう。

  1. List<T>クラスの別のインスタンスのメンバーを見ています
  2. あなたList<T>が見たのは、実際にはメンバー変数ではありませんでした(関数のローカルだけです)
  3. これは非同期コールバックで、他の場所で使用しようとすると終了/開始していませんか?
于 2013-07-19T23:13:02.407 に答える