public async Task <HttpResponseMessage> Post([FromBody] byte[] message) { channel.OnReceive += Channel_OnReceive; mapper.MapIn(message); await channel.AddMessageAsync(message); ThreadPool.QueueUserWorkItem(Listen, waitHandles[0]); WaitHandle.WaitAll(waitHandles); if (result != null) { logger?.LogDebug("API returned response."); return(new HttpResponseMessage(HttpStatusCode.OK) { Content = new ByteArrayContent(result) }); } logger?.LogWarning("API returned no response from RTU."); return(new HttpResponseMessage(HttpStatusCode.InternalServerError)); }