2

I'm working on a single App with Xamarin.Forms, Visual Studio.

I'm using a ManualResetEvent in my code to wait for an event to fire. No problem with Android, but in iOs, myManualResetEvent.WaitOne(5000) is waiting infinitely. But, as soon as I get out of my function, after the timeout, I get the event....

Why iOS is blocking and not Android? Anyone can help?

(partial code)

ManualResetEvent handshaking;
EventHandler<CharacteristicReadEventArgs> valueUpdatedHandler;

internal void StartListening()
{
    handshaking.Reset();

    valueUpdatedHandler = (s, e) =>
    {
        try
        {
            Debug.WriteLine("received data");
            handshaking.Set(); // Get here in Android when Waiting, NOT in iOS
        }
        catch (ArgumentNullException)
        {
            return;
        }
    };

    something.ValueUpdated += valueUpdatedHandler;
}

private void SendingData()
{
    handshaking.Reset();
    Debug.WriteLine("new line");
    SendData();

    // wait for handshaking
    handshaking.WaitOne(5000);  // in Android, I get Set() by my event, in iOS, NOT???
    handshaking.Reset();
}
valdetero
  • 4,624
  • 1
  • 31
  • 46

0 Answers0