Task GetUserMessage(ISubscriber user) { return(Task.Run(() => { Object messageLock = new Object(); lock (messageLock) { if (user.CheckIfConnected()) { Message message = user.Recieve(); Console.WriteLine(message.Body); log.Save(message); messages.Enqueue(message); } } })); }