End Google Ads 201810 - BS.net 01 --> In normal situations, the following code stops timer as expected:

CreateWaitableTimer...
SetWaitabltTimer... // with duration 0 and period USER_TIMER_MINIMUM
CancelWaitableTimer...

Here, I mean 'normal' as 'not using socket calls'.

However, when the two conditions are met, CancelWaitableTimer does not stop timer. I've tried to find out why, in vain. The two conditions are:
- CSocket::Connect or CAsyncSocket::Connect was called
- the last SetWaitableTimer was called with Duration 0 and period USER_TIMER_MINUMUM
Actually USER_TIMER_MINUMUM is only to repeat the issue everytime in 100%.
If period is long enough, this issue happens irregularly.

That is, the following code fails to stop the timer.

CreateWaitableTimer...
SetWaitabltTimer... // with duration 0 and period USER_TIMER_MINIMUM
CSocket::Connect... // use Connect from CSocket or CAsyncSocket
CancelWaitableTimer...

Since it is too hard to post a complete source code here,
I would email the zipped project file if you send me an email to 'ehaerim at gmail dot com'.

thx
HaeRim Lee