In the Half-Open state, the state machine/circuit breaker component resets the timeout counter and again tries to open the circuit, reinitiating the state change to the Open state. However, before doing so, it tries to perform regular operations, say a call to the dependency; if it succeeds, then instead of the Open state, the circuit breaker component changes the state to Closed. This is so that the normal flow of the operation can happen, and the circuit is closed again.
For .NET-based microservices, if you want to implement the circuit breaker and a couple of fault-tolerant patterns, there is a good library named Polly available in the form of a NuGet package. It comes with extensive documentation and code samples, and moreover, has a fluent interface. You can add Polly from http://www.thepollyproject.org/ or by just issuing the install--Package Polly command from the package manager console in Visual Studio.