2

Windows 10 IoT Core を実行している Raspberry Pi 2 でプロジェクトに取り組んできました。ビデオを開いて被写体センサーのトリガーを投影します。しかし、次のエラーが発生します。

タイプ 'System.Exception' の例外が ProjeVol1.exe で発生しましたが、ユーザー コードで処理されませんでした

追加情報: アプリケーションは、別のスレッド用にマーシャリングされたインターフェースを呼び出しました。(HRESULT からの例外: 0x8001010E (RPC_E_WRONG_THREAD))

コード:

private void SensorPin_ValueChanged(GpioPin sender, GpioPinValueChangedEventArgs args)
{
    Debug.WriteLine("Sensor Tetiklendi");
    if (args.Edge == GpioPinEdge.FallingEdge)
    {
        Debug.WriteLine("Falling Edge");
        ledPin.Write(GpioPinValue.High);
        VideoAc();

    }
    else if (args.Edge == GpioPinEdge.RisingEdge)
    {
        Debug.WriteLine("Rising Edge");
        ledPin.Write(GpioPinValue.High);

    }
}


public void VideoAc()
{
    video.AutoPlay = true;
    video.Play();
    video.MediaEnded += Video_MediaEnded;
}
4

1 に答える 1

3

センサー イベントは、UI のスレッドとは異なるスレッドから発生する可能性が高く、それがフレームワークを怒らせます。

VideoAcこの記事で説明されているように、ディスパッチャー同期で呼び出しを囲むようにしてください: UWP update UI from Task

await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => {
    VideoAc();
});
于 2016-07-18T15:17:27.027 に答える