問題タブ [winrt-async]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Windowsランタイムコンポーネントからポータブルコードライブラリの非同期メソッドを呼び出す
バックグラウンド
Windows 8(ストアアプリとして)とWindows 7(WPFデスクトップアプリとして)の両方で利用できるアプリを構築しています。これらのアプリでは、大量のコンテンツ(約500以上のアプリケーション「ページ」)を閲覧できます。
私はそれらの間でコードの多くを共有することはできませんが、可能な限り共有したいと思います。そこで、.NET 4.5、Silverlight 4+、およびWindows 8を対象としたポータブルコードライブラリ(PCL)を作成しました。Win8アプリはJavaScriptで記述されているため(さまざまな理由で、この質問の一部ではありません)、Windowsもあります。 JavaScriptとPCLの間のプロキシとして機能するランタイムコンポーネント。つまり、JavaScriptからの非同期呼び出しは、最初にWinRTコンポーネントのメソッドを呼び出し、次にPCLの対応するメソッドを呼び出します。
問題
PCLで非同期操作をサポートするために、NuGetを介してMicrosoft.BclおよびMicrosoft.Bcl.Asyncパッケージをインストールしました。これらは、とりわけ、メソッドを非同期化するために必要なTaskクラスとTask <>クラスを検出しますが、それらは独自のアセンブリで実行します。WinRTコンポーネントには、TaskとTask <>がすでに定義されているため、これらのライブラリは必要ありません。問題は、WinRTコンポーネントにコードを追加して、Task <>オブジェクトを返すPCLのAsyncメソッドを呼び出すと、次のビルドエラーが発生することです。
WINMDEXP:エラーWME1007:参照'Assembly(Name = System.Threading.Tasks、Version = 1.5.11.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3a)'を解決できませんでした。
私が試したこと
私はたくさんのことを試しましたが、出てくるかもしれない主な2つは次のとおりです。
- WinRTコンポーネントのapp.Configを変更して、アセンブリのbindingRedirectを追加します。
- タスクオブジェクトを内部で行う非同期呼び出しから戻し、Wait()を呼び出すことにより、PCL呼び出しを外部で非同期にします。Waitは、不可解な例外をスローするために戻ることはありません。
それで、これを達成する方法について何か考えはありますか?
ありがとう、
デーブ・パーカー
windows-8 - Windows 8 アプリのプライバシー ポリシーについて
プライバシー ポリシーのためにアプリで指定する個人の Web サイトや URL はありません。同じものを指定する代替手段はありますか?
windows-8 - Windows 8 デバイス (ラップトップ/タブレット/デスクトップ) が GPS 対応かどうかを確認する方法
xaml で Windows 8 ストア アプリを開発していますが、ユーザーの GPS 位置情報を使用しています。ユーザーが使用しているデバイスに GPS 機能があるかどうかをプログラムで知る方法はありますか?
Windows Phone とは異なり、インターネット接続がある場合にのみ機能しますか?
c++ - WinRT を使用した WifiDiscovery
アプリ用の IP カメラを見つける必要があります。以前の Windows 7 では、Bonjour API を使用して IP カメラを見つけました。しかし、windows 8 WinRT は Bonjour をサポートしていないようです。WinRT で同じことを行うものはありますか?
c# - GetFilesAsyncが機能しなくなります
私はこのコードを持っています
Windows8ストアアプリケーションから呼び出します。
したがって、上記の行にブレークポイントを設定して段階的に実行すると、機能しますが、ブレークせずにアプリケーションを実行するだけで、アプリケーションがハングします。
そして、同様のコードが数日前のコミットで機能していました。
何か案は?
windows-8 - IXMLHTTPRequest2コールバックが別のスレッドで呼び出されることをどのように保証できますか?
IXMLHTTPRequest2 / IXMLHTTPRequest2Callbackインターフェイスを使用して、HTTP要求を送信し、応答を処理しています。以下の呼び出しスタックに示すように、応答コールバック(OnHeadersAvailable()など)が要求を送信したスレッドとは異なるスレッドで呼び出される場合もあれば、要求を送信したのと同じスレッドでコールバックが呼び出される場合もあります。 :
これは非同期インターフェースとして文書化されているため、コールバックは常に別のスレッドで呼び出されると予想していました。リクエストを送信するスレッドとは異なるスレッドでコールバックが常に呼び出されることを保証できる方法はありますか?情報ありがとうございます。
unit-testing - Windowsストアユニットテストプロジェクト用のDataReaderのモック
IDataReader.LoadAsyncメソッドを使用するWindowsStoreクラスライブラリプロジェクトの単体テストを試みています。LoadAsyncメソッドの戻りタイプであるDataReaderLoadOperationを除いて、必要なIDataReaderのすべての部分を実装する独自のスタブを作成できます。これはパブリックコンストラクターのない封印されたクラスであるため、スタブのLoadAsyncメソッドから何を返すかわかりません。
私がテストしているコードは、awaitそれ以外はLoadAsyncの結果を使用していないため、スタブからnullを返してみました。ただし、フレームワークがnullのDataReaderLoadOperation(IAsyncOperation <uint>)をタスクに変換しようとし、NullReferenceExceptionをトリガーするため、これによりAggregateExceptionがスローされます。
Microsoft Fakesは、ストアの単体テストプロジェクトでも利用できず、通常の単体テストプロジェクトでのみ利用できるようです。そのため、どちらも役に立ちません。
Windows Storeの単体テストプロジェクトのDataReader.LoadAsyncをモックするにはどうすればよいですか?
編集:スティーブンの答えによると、私は代わりにIInputStreamをモックしました。以下は参考のために私のモックです。
c# - WinRTでファイルサイズを取得するには?
WinRT にはFileInfoクラスはなく、クラスのみStorageFileです。
StorageFileクラスを使用してファイルのサイズを取得するにはどうすればよいですか?
c# - C# Windows ストア アプリ - async/await を使用したファイル IO でタイムアウトと InvalidOperationException が発生する
これはこのサイトでの最初の投稿であり、コードを機能させるために広範囲を検索しました。タイトルが示すように、これは WinRT アプリであり、ファイル IO に問題があります。私がやりたいことは、アプリケーションのインストール ディレクトリ内にあり、List<> にフィードするデータ行を含むフォルダーに保存されているテキスト ファイルを読み取ることです。
問題は、実行しようとするとファイルが見つからないというエラーが発生することです。誰でも助けることができますか?より多くの情報を投稿する必要がある場合は、できます... よろしくお願いします。