private float[] GetDistancesFromSimulator() { ValueSet valuesToSend = new ValueSet { { "LIDAR", "" } }; ValueSet dataReceived = Task.Run(() => _simulatorCommunication.RequestDataAsync(valuesToSend)).GetAwaiter().GetResult(); //TODO: (ref. issue #4) This is a temporary hack that blocks the async method. WARNING MAY CAUSE ISSUES!. See if Read() can be rewritten to be async. See Figure 7 "The Thread Pool Hack" on https://msdn.microsoft.com/en-us/magazine/mt238404.aspx return(dataReceived["DATA"] as float[]); }
public VehicleDataPacket Read() { ValueSet valuesToSend = new ValueSet(); valuesToSend.Add("ADDRESS", (int)_simulatedDevice); valuesToSend.Add("REQUEST", ""); ValueSet dataReceived = Task.Run(() => _simulatorCommunication.RequestDataAsync(valuesToSend)).GetAwaiter().GetResult(); //TODO: (ref. issue #4) This is a temporary hack that blocks the async method. WARNING MAY CAUSE ISSUES!. See if Read() can be rewritten to be async. See Figure 7 "The Thread Pool Hack" on https://msdn.microsoft.com/en-us/magazine/mt238404.aspx NewDataReceived?.Invoke(this, EventArgs.Empty); return(ConvertData(dataReceived)); }