Aborting the thread from inside the same thread
Asked Answered
B

1

5

I created a thread A and decided to abort it from inside the thread A. Is that possible? If so how can I do that?

Thanks for the help!

Bootie answered 26/9, 2013 at 19:48 Comment(0)
P
16

Sure, you can do:

Thread.CurrentThread.Abort();

Arguably aborting the current thread is the only kind of abort that's safe, as it's the only thread you really know about in terms of what it's doing. This is what HttpResponse.End does, for example.

It's not something I would typically recommend - basically it's done because unless you explicitly call Thread.ResetAbort, the ThreadAbortException will propagate up the call stack regardless of catch blocks - it's a sort of "uber-exception" in that sense.

Prentiss answered 26/9, 2013 at 19:50 Comment(2)
Okay, I know it's safe. I'd still look askance at any code that used this. Kind of like seeing a goto when there are other, cleaner, ways of doing things. In fact, I've called Thread.Abort "the goto of multithreaded programming." I'm not 100% set against using Abort here, just like I'm not 100% set against using goto. But . . .Nonpros
@JimMischel: Yes, it's pretty grim - but at least it's better than aborting a different thread. Will edit to make it clear that it's not a recommended strategy.Prentiss

© 2022 - 2024 — McMap. All rights reserved.