2015-03-31 2 views
1

Есть ли способ проверить, был ли вызван Interrupt() в моем потоке, аналогично Java Thread.isInterrupted?Как проверить, что Thread.Interrupt() был вызван в моем потоке?

+1

Пожалуйста, будьте более конкретным. В каком контексте вы пытаетесь определить прерванное состояние? что ты уже испробовал? Что это сделал, и как это отличалось от того, что вы хотели? Пожалуйста, укажите [хороший, _minimal_, _complete_ пример кода] (http://stackoverflow.com/help/mcve), в котором четко показан сценарий, который вы пытаетесь решить, и что вы хотите. –

+0

@Peter Duniho, эти требования обусловлены некоторыми новыми «правилами»? – user626528

+0

Нет «требований». Вы можете отправить любой вопрос, который хотите. Но все остальные могут игнорировать его, проголосовать, что угодно. Когда кто-то попросит вас улучшить свой вопрос, вам следует воспользоваться _you_. «Правила» (как вы его описали) не новы. Они четко изложены в ссылке, которую я уже предлагал, а также в http://stackoverflow.com/help/how-to -ask, а также в других разделах справочного центра на сайте. Они давно. –

ответ

2

Я не верю, что есть что-то подобное. Вы получите исключение в потоке, если кто-то прерывает вас, и вы заблокированы (или впоследствии заблокированы), но это не совсем то же самое, что вы можете сказать, готов ли прерывание к вам.

Это дает ключ, вы можете просто заблокировать в течение короткого периода времени, чтобы увидеть, появляется ли исключение.

Возможно, стоит немного отступить, чтобы изучить , почему вам кажется, что вам это нужно. Там может быть лучший способ добиться того, чего вы хотите.

+0

Исключение возникает только тогда, когда поток попадает в состояние сна. Я мог бы использовать вызов Thread.Sleep (0), но это безумно дорого. – user626528

+0

Я пытаюсь остановить свою программу по запросу менее уродливо, а затем использовать флаг завершения и проверять его везде. – user626528

+0

@ user626528, это не _just_ sleep, состояние, в котором вы получите исключение, - 'waitsleepjoin', которое охватывает несколько вещей. Но «спать», вероятно, проще всего, если вы действительно хотите знать. – paxdiablo

Смежные вопросы