0

UWP でのシリアル デバイスへの書き込みに問題があります。ポートに書き込むための私のタスクは次のようになります。

    public async Task WriteAsync(byte[] stream)
    {
        if (stream.Length > 0 && serialDevice != null)
        {
            await writeSemaphore.WaitAsync();
            try
            {
                DataWriter dataWriter = new DataWriter(serialDevice.OutputStream);

                dataWriter.WriteBytes(stream);

                await dataWriter.StoreAsync();
                dataWriter.DetachStream();
                dataWriter = null;                    
            }
            finally
            {
                writeSemaphore.Release();
            }

        }
    }

この関数を呼び出す最初の 2 回は、コードが正常に機能します。3 回目は、 await dataWriter.StoreAsync()行の ntdll.dll で Unhandled Exception が発生しました。

私が見ることができる完全な例外は次のとおりです。

xx.exe の 0x00007FFCB3FCB2C0 (ntdll.dll) で未処理の例外: 0xC000000D: 無効なパラメーターがサービスまたは関数に渡されました。

この回答では、入力ストリームを閉じるガベージ コレクターについて言及していますが、コードでなぜそれが発生するのかわかりません。この問題の根底に到達するための助けをいただければ幸いです。

4

2 に答える 2