public string Request(string message)
{
string recieved= null;
var correlationID = "correlationID=" + Guid.NewGuid().ToString() + "|";
var messageToSend = correlationID + message;
EventHandler<MessageArgs> msgHandler = (o,a) => {
if (a.Message.StartsWith(correlationID) && a.Message != messageToSend)
recieved = a.Message
.Substring(
correlationID.Length,
a.Message.Length - correlationID.Length);
};
_messageReceived += msgHandler;
Send(messageToSend);
var timeout = DateTime.Now;
while (DateTime.Now.Subtract(timeout).TotalMilliseconds < 8000)
{
if (recieved != null)
break;
Thread.Sleep(10);
}
_messageReceived -= msgHandler;
return recieved;
}