にスレッド情報を取得しますが、私はXamarin PCL
Parallel.Invoke(() => ExecuteTaskAAsync(),() => ExecuteTaskBAsync());
今、私はどのスレッド上でこれらのタスクが実行されているかを知りたいとPCLからいくつかの並列タスクを起動します。
Thread.CurrentThread.ManagedThreadId
は、iOS とDroidプロジェクトでのみ使用できますが、PCLまたはUWPプロジェクトでは使用できないようです。私の可能性は何ですか?もし私がDependencyService
を使用するのであれば、起動されたタスクとDependencyService
の間に関係がないので、TaskAが実行中のスレッドについてもわかりません。
PCLでスレッド情報(ID、名前、...)を取得するにはどうすればよいですか?
ブレークポイントを設定すると、Tasks Windowに入り、さらに詳しい情報が得られます。また、トップダウンでプロセスを選択し、異なるスレッドを選択して、スタックフレームに関する情報を取得します。ですから、この情報をコードで入手できるはずですか?
編集:
UWP上で動作しているとき、タスクウィンドウ内の情報のみが利用可能であると思われます。
明示的なスレッドIDは本当に要件ですか?そうでない場合は、 'SynchronizationContext.Current'をチェックし、それらがいくつかの格納されている参照と等しいかどうかを調べることができます。 –
いいえ、そうではありません。私は、どのスレッドから来たのかを知るために、いくつかのスレッド情報をログファイルに含めたいと思っています。あなたの比較アプローチでは、私はそれが非UIスレッドの場合のみ見ることができますか?私のサンプルアプリケーションでは、 'SynchronizationContext'は' null'でした。 – testing
Visual StudioでTracePointsを設定すると、スレッドIDをデバッグウィンドウに出力できます。 –