When Stop() is called on the CapDevice object:
public void Stop()
// Check if the capture device is even running
// Yes, stop via the event
// Abort the thread
if (_worker != null)
to work... _Stopsignal is set and the _worker Thread status goes to AbortRequested. Also, the Runworker() will move to the final instructions being: _control.StopWhenReady(); Which is the expected behavior.
However, after this the Thread.Join() waiting state inside Stop() never finishes if I don't put the 5000 ms timeout (see above). This means that the _worker Thread never actually finishes.
I therefore suspect that there is an issue with the implementation of the hardware interaction or something else that prevents proper execution of _control.StopWhenReady() or even _control.Stop().
Could this be confirmed or am I completely missing something here.
After _worker.Abort() I expect the _worker Thread to actually fully stop, but it never does...