Click here to Skip to main content
16,021,041 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
QuestionHow to end a thread Pin
Chen-XuNuo13-Dec-07 19:07
Chen-XuNuo13-Dec-07 19:07 
AnswerRe: How to end a thread Pin
Llasus13-Dec-07 19:21
Llasus13-Dec-07 19:21 
GeneralRe: How to end a thread Pin
Chen-XuNuo14-Dec-07 4:32
Chen-XuNuo14-Dec-07 4:32 
AnswerRe: How to end a thread Pin
Mark Salsbery13-Dec-07 19:23
Mark Salsbery13-Dec-07 19:23 
GeneralRe: How to end a thread Pin
Chen-XuNuo14-Dec-07 4:34
Chen-XuNuo14-Dec-07 4:34 
GeneralRe: How to end a thread Pin
Mark Salsbery14-Dec-07 4:58
Mark Salsbery14-Dec-07 4:58 
GeneralRe: How to end a thread Pin
Chen-XuNuo14-Dec-07 18:03
Chen-XuNuo14-Dec-07 18:03 
GeneralRe: How to end a thread Pin
Mark Salsbery15-Dec-07 7:45
Mark Salsbery15-Dec-07 7:45 
Chen-XuNuo wrote:
How do you think the two methods of conrol the enemies and bullets that one use threads and the other use timer in class?Which waste more CPU resource?


Total CPU usage is going to be pretty close to the same with either
method, up to a point.

At some point, you can have so many threads that the system is
spending too much time switching between them. That will degrade
performance.

There's nothing wrong with what you're doing, except scaleability.
If you decide to be able to have hundreds of bullets being animated
at the same time, you can still do that with one thread. There's no
good reason to have a separate thread for each bullet.

A fairly easy scenario for a simple game would have:

1) One thread that does ALL the drawing/rendering. This eliminates the
problems with GDI/DirectX/etc. synchronization between threads. You
can synchronize them, but that slows it down - waiting threads are doing
nothing when they could be working Smile | :) This thread could be awakened by
a multimedia timer event to provide a smooth animation frame rate.

2) A second thread to do all the calculations of bullet positions and
movement of other objects. The information calculated by this thread
would be used by the rendering thread so it knows where to draw stuff.
If coded efficiently,, the render thread should be able to read the info
it needs without ever waiting on this thread.

Of course, there's an infinite number of ways to design this.
My point is that you can do a LOT of processing with very few threads
on modern PCs Smile | :)

Mark
Mark Salsbery
Microsoft MVP - Visual C++

Java | [Coffee]

GeneralRe: How to end a thread Pin
Chen-XuNuo14-Dec-07 18:15
Chen-XuNuo14-Dec-07 18:15 
GeneralRe: How to end a thread Pin
Mark Salsbery15-Dec-07 7:33
Mark Salsbery15-Dec-07 7:33 
GeneralRe: How to end a thread Pin
Chen-XuNuo15-Dec-07 3:14
Chen-XuNuo15-Dec-07 3:14 
GeneralRe: How to end a thread Pin
Mark Salsbery15-Dec-07 7:31
Mark Salsbery15-Dec-07 7:31 
GeneralRe: How to end a thread Pin
Chen-XuNuo15-Dec-07 14:52
Chen-XuNuo15-Dec-07 14:52 
AnswerRe: How to end a thread Pin
Cedric Moonen13-Dec-07 20:26
Cedric Moonen13-Dec-07 20:26 
GeneralRe: How to end a thread Pin
Mark Salsbery13-Dec-07 20:38
Mark Salsbery13-Dec-07 20:38 
GeneralRe: How to end a thread Pin
Chen-XuNuo14-Dec-07 4:40
Chen-XuNuo14-Dec-07 4:40 
GeneralC2365 error Pin
subramanyeswari13-Dec-07 18:54
subramanyeswari13-Dec-07 18:54 
GeneralRe: C2365 error Pin
Mark Salsbery13-Dec-07 19:13
Mark Salsbery13-Dec-07 19:13 
GeneralRe: C2365 error Pin
subramanyeswari13-Dec-07 19:59
subramanyeswari13-Dec-07 19:59 
QuestionA non-const reference may only be bound to an lvalue? Pin
George_George13-Dec-07 18:50
George_George13-Dec-07 18:50 
AnswerRe: A non-const reference may only be bound to an lvalue? Pin
Iain Clarke, Warrior Programmer14-Dec-07 1:21
Iain Clarke, Warrior Programmer14-Dec-07 1:21 
GeneralRe: A non-const reference may only be bound to an lvalue? Pin
toxcct14-Dec-07 2:38
toxcct14-Dec-07 2:38 
GeneralRe: A non-const reference may only be bound to an lvalue? Pin
Iain Clarke, Warrior Programmer14-Dec-07 3:29
Iain Clarke, Warrior Programmer14-Dec-07 3:29 
GeneralRe: A non-const reference may only be bound to an lvalue? Pin
toxcct14-Dec-07 3:30
toxcct14-Dec-07 3:30 
GeneralRe: A non-const reference may only be bound to an lvalue? Pin
Nelek16-Dec-07 21:11
protectorNelek16-Dec-07 21:11 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.