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();
}