You can detect if a key is currently pressed at any moment with the sf::Keyboard::isKeyPressed function. Also check the tutorial about inputs if needed.
No, its no good like in Moorhunn and action shot games.
Because need to detect Event ALL TIME !!!
And pinball games too.
F.e. you detect only for short time during beginning of frame.
If you press and release during game world changing logic, your actions logic no detect press of key.
If You want start parallel thread - its will be very expensive for every loop detect keys.
///
But I test for laggy logic of 20fps - for fast press/release shift.
Keyboard::isKeyPressed(Keyboard::LShift)
Keyboard::isKeyPressed(Keyboard::RShift)
Maybe this usefull....
///
But again - no can detect Release key.
For release - can be (Keyboard::isKeyPressed(Keyboard::LShift) == false).
Now i very fast touch shift and some times no detect Shift ispressed.
This is no problem at monitor framerates >= 60 fps.
For pinball no problem because so fast touches no sens....
And for actions shot games no problem too - because all keys detect Release event except only for both shifts in one time.