The write operation doesn’t update the characteristic value for iOS in xamarin forms

I’m creating a BLE application using xamarin forms. Everything is working fine in Android I’m able to read and write GATT characteristics. In iOS I’m able to read successfully but the write operation doesn’t update the characteristics value. There is no error in the write operation as well it is executing but the characteristics value is not changing. I tried iOS native application called light blue there its working fine the characteristic value is updated I’m facing issue only Xamarin forms app. This is my code

private async Task<string> ProcessDeviceInformationService(IService deviceInfoService)
        {
            try
            {
               await adapter.ConnectToDeviceAsync(device);
                var sb = new StringBuilder("Getting information from Device Information service: n");
                var characteristics = await deviceInfoService.GetCharacteristicsAsync();
                var characteristic = await deviceInfoService.GetCharacteristicAsync(Guid.Parse("00002A39-0000-1000-8000-00805F9B34FB"));
              
                    try
                    {
                   
                 deviceInfoService.GetCharacteristicAsync(GattCharacteristicIdentifiers.DataExchange);
                    if (characteristic != null)
                        {
                                                   
                       var sbnew = new StringBuilder("BLE Characteristicsn");
                       byte[] senddata = Encoding.UTF8.GetBytes(string.IsNullOrEmpty(SendMessageLabel.Text) ? "0ab" : SendMessageLabel.Text);

                            await Task.Delay(300);
                        
                            
                        if (MainThread.IsMainThread)
                        {
                            var newbytes = await characteristic.WriteAsync(senddata);
                           
                        }
                         await Task.Delay(300);
                        characteristic.ValueUpdated += (o, args) =>
                        {
                            var charvalue = args.Characteristic.Value;
                        };
                    
                        var bytes = await characteristic.ReadAsync();
                            string str = Encoding.UTF8.GetString(bytes);
                            
                            sbnew.AppendLine($"Characteristics found on this device: {string.Join(", ", str.ToString())}");
                            CharactericsLabel.Text = sbnew.ToString();
                       
                       
                       
                    }

             
                }
                    catch (Exception ex)
                    {
                        return ex.Message;
                    }
               
                return CharactericsLabel.Text;
              
            }
            catch (Exception ex)
            {
    
                return ex.ToString();
            }


        }

I tried delay and I also tried to get write without response from peripheral but it doesn’t work. I have no clue how to fix this any suggestions.

Source: Xamarin.ios Questions