You say initialization - if that means on powerup/restart - then none of the charts are running at startup, so this is unnecessary.
If you are trying to stop your charts to reset/restart your process, it may be better to have a variable with a stop request command for your charts so that your charts can check this and exit themselves. This way you can have your charts stop at a clean point and not midway through some task. If your charts have real long delays in them, this will probably not work well though.
You can also eliminate the bChartStatus variable:
If you want to keep going the way you are, I would command all the StopCharts first, then put in a delay of 100ms or so, and then check if they stopped, but efficiency is probably not that important in this code.
Also, be aware that if you are using locks (semaphores), that your code can end up deadlocked and never exit since charts will continue to run if a lock is set. If you don’t know what a lock is, then you are probably not using them.