title: Best way to implement socket listener in C#
body: <p>I did search for answers already, but can't find anything similar...</p>
  
  <p>I'm fairly new to C#. I need to create a program in C# using WinForms. It basically has 2 components: UI and then I need to have a process that permanently listens on a socket TCP port. If there's anything received, then I need to raise an event or something similar so I can update the UI.</p>
  
  <p>Question: what is the best way to implement a process that needs to be listening all the time while the program is running? </p>
  
  <p>And then, when I receive a message, how can I notify the UI that it needs to be updated?</p>
  
  <p>Thanks!</p>