Like NooM said on the Thread.Sleep(Timeout.Infinite);, but as far as I know you also have to read the data from the serial buffer, otherwise you will not receive new data.
You could also change the sleep of 1000 ms to a timer that will turn off the led after 1 second. This way you do not have to pause the thread.