Don't.
The problem is probably that ReadLine is a blocking operation - it doesn't return until a complete line together with line end character(s) has been received by the serial port - so your code can't do anything else until that happens.
Instead, use the
SerialPort.DataReceived event[
^] and buffer up the data yourself in a stringbuilder yuntiul you have a complete line. You can then process the line.
That way, your code isn't sitting waiting for data all the time and doing nothing else!