Windows8メトロアプリを作成しようとしています。フィードを取得する小さなRSSリーダー。
そのため、フィードを非同期にしようとしています。
Windows.Web.AtomPub.AtomPubClient client = new Windows.Web.AtomPub.AtomPubClient();
client.RetrieveFeedAsync(new Uri("http://MyURI/index.rss")).Completed += completed;
コールバック関数は次のとおりです。
private void completed(IAsyncOperationWithProgress<Windows.Web.Syndication.SyndicationFeed, Windows.Web.Syndication.RetrievalProgress> asyncInfo, AsyncStatus asyncStatus);
Ok。今私の問題。
コールバック関数内のオブジェクトにアクセスしようとしている限り、すべてが正常に機能しています。しかし、(コールバック関数が配置されている)クラスのオブジェクトにアクセスしようとすると、COMExceptionが発生します。this.MyCollection.Add(...)のようなものを試してみます。クラス内のコレクションに追加するfeedItemを作成しています。
An exception of type 'System.Runtime.InteropServices.COMException' occurred in mscorlib.dll but was not handled in user code
Additional information: Eine Schnittstelle, die für einen anderen Thread marshalled war, wurde von der Anwendung aufgerufen. (Ausnahme von HRESULT: 0x8001010E (RPC_E_WRONG_THREAD))
If there is a handler for this exception, the program may be safely continued.
奇妙なことに、このアクセスは私のアプリを2回実行するごとに機能しています。
ここで何がうまくいかないのかわかりません。
誰かが私にヒントをくれましたか?
どうもありがとう!