Always use a interrupt. That way you never lose data. In event driven or threaded applications even the slowest signals should be interrupt driven.
The only time that you should use polling is when you are using a scheduler and the buffers on your hardware are deep enough to ensure no data loss.