/// <summary>
 /// Asynchronously send a message to this worker.
 /// </summary>
 /// <param name="message">Message to be sent.</param>
 public void SendMe(AbstractMessage message)
 {
     messages.Add(message);
 }
 /// <summary>
 /// Action to take upon receiving a message.
 /// </summary>
 /// <param name="message"></param>
 protected abstract void OnReceive(AbstractMessage message);