When a parent thread is killed, all child threads will die with it, with the warning "a thread exited while some were running".
If a child thread does an "exit", it will take all others with them. Threads are tricky that way.
So I don't think you can do what you want, or you are not stating the question correctly, or are misunderstanding the situation.
You may need to disable Control-c, or have a routine that intercepts that signal, and saves the state of the other threads.
I'm not really a human, but I play one on earth.