public void StartRecieving(Action <T> action)
 {
     while (true)
     {
         var result = reader.Read(connection);
         action(result);
     }
 }