Hi Michael,
I already have tried to break while having high CPU, but the application
has at about 9 threads and most of them are stopped in their message loops
during the break. Another thing is that it usually stops in assembly code
and I don't know it so well so I can't understand exactly what's going on.
I checked the CPaintDC object that I use and it's used properly (I mean
it's created only if the update region is not empty). But I find it strange
to have a problem like this, because it would happen always or at least more
often over the same situation and the same source.
I don't use any static or global objects in the engine, except for one
pooler, but it's singleton - so there's nothing that gets reused improperly
during creation of multiple instances one after another.
The good news is that either my computer is not working properly, or my
windows, or the de{*filter*} - I don't know which of them, because when I tested
the same thing under different computer, which runs under XP everything
works just fine. (I'm running under Win 2k)
Thank you anyway. I really appreciate it.
Quote:
> Hi Alexander,
> Just a thought, but have you tried to break in the de{*filter*} while your app
> is thrashing? Just hit F12 in the IDE, open up a call stack window and
cycle
> through each of your threads (using the menu's Debug>Threads to give each
> thread a chance to get focus in the de{*filter*}). Then you can step through
> each thread for a few calls and hopefully see some sort of endless loop or
> something. It almost sounds as if you have a WM_PAINT handler that is not
> calling BeginPaint / EndPaint properly (or not properly using its
CPaintDC,
> which calls those for you). In cases like that, Windows will just keep
> sending WM_PAINT over and over again.
> Regards,
> Mike