请教:Xamarin.Form中Socket读数据阻塞问题

问题遇到的现象和发生背景

一台仪器有个可插拔的蓝牙通讯模块,模块自供电。蓝牙插上时,手机App可对其操控,蓝牙拔掉后,App仍然时可以向蓝牙模块发送指令,但发送读取数据指令时,App假死约1分钟,然后崩退。

问题相关代码,请勿粘贴截图
        private BluetoothSocket socket;

当蓝牙模块拔掉后,发送读数据指令时,在Read方法处阻塞。为了预防此场景,通过Stream的IsDataAvailable()方法预先判断是否可读数据。在蓝牙模块未插入情况下,判断正确;但正常插入仪器情况下,误判率较高,常常判断为false了,仪器实际有数据返回,并拥堵在缓冲区,导致下一次执行时,把缓冲区的数据先读出来了,造成错误。

        private async void XX_Clicked(object sender, EventArgs e)
        {            
                ……
                Stream inputStream = socket.InputStream;
                if (!IsAvailable(inputStream))
                {//预先判断
                    return;
                }
                inputStream.Read(bufResponse, 0, bufResponse.Length); //此处阻塞
                ……
        }

        //判断是否可读数据
        private bool IsAvailable(Stream inputStream)
        {
            bool isAvailable = false;
            int count = 0;
            do
            {
                isAvailable = inputStream.IsDataAvailable();
                count++;
            } while (!isAvailable && count < 10);

            if (!isAvailable)
            {
                inputStream.Flush(); //此处实际没有什么用
            }
            return isAvailable;
        }

还尝试了在执行Read前设置超时:

        inputStream.ReadTimeout = 5000;

但报出Timeouts are not supported on this stream异常。

我想要达到的结果

恳请众位高人赐教,不胜感激。