Есть ли способ проверить, был ли вызван Interrupt() в моем потоке, аналогично Java Thread.isInterrupted?Как проверить, что Thread.Interrupt() был вызван в моем потоке?
ответ
Я не верю, что есть что-то подобное. Вы получите исключение в потоке, если кто-то прерывает вас, и вы заблокированы (или впоследствии заблокированы), но это не совсем то же самое, что вы можете сказать, готов ли прерывание к вам.
Это дает ключ, вы можете просто заблокировать в течение короткого периода времени, чтобы увидеть, появляется ли исключение.
Возможно, стоит немного отступить, чтобы изучить , почему вам кажется, что вам это нужно. Там может быть лучший способ добиться того, чего вы хотите.
Исключение возникает только тогда, когда поток попадает в состояние сна. Я мог бы использовать вызов Thread.Sleep (0), но это безумно дорого. – user626528
Я пытаюсь остановить свою программу по запросу менее уродливо, а затем использовать флаг завершения и проверять его везде. – user626528
@ user626528, это не _just_ sleep, состояние, в котором вы получите исключение, - 'waitsleepjoin', которое охватывает несколько вещей. Но «спать», вероятно, проще всего, если вы действительно хотите знать. – paxdiablo
- 1. Как проверить деструктор был вызван в потоке?
- 2. Mockto: как проверить, что был вызван конструктор?
- 3. JUnit - проверить, что метод был вызван
- 4. Как проверить, был ли уже вызван метод?
- 5. Как проверить, что метод был вызван в жасмине?
- 6. Как проверить, что метод был вызван в arquillian-тесте
- 7. Как проверить, что конструктор другой формы был вызван в WPF?
- 8. Как проверить, что в методе async thread был вызван?
- 9. Как проверить, что метод не был вызван в Moq?
- 10. Как проверить, что «puts» был вызван с определенным сообщением?
- 11. Как проверить, что метод класса не был вызван?
- 12. Как проверить, что метод службы не был вызван
- 13. Rhino Mocks: Как проверить, что конструктор был вызван
- 14. Как проверить, что статический метод был вызван точными аргументами?
- 15. как проверить, что метод был вызван с аргументом определенного типа
- 16. Как проверить, что метод был вызван внутри другого метода
- 17. Как проверить, что конструктор был вызван с помощью синона
- 18. Как проверить, какой элемент был вызван?
- 19. Как проверить, был ли OleInitialize уже вызван?
- 20. mocks - как проверить частный метод был вызван
- 21. Как проверить, был ли этот метод вызван?
- 22. PHPUnit: как проверить, что метод еще не был вызван, но будет вызван позже в тестовом случае?
- 23. Angular2 - проверить, что введенный метод частной службы был вызван
- 24. Python как утверждать, что метод был вызван
- 25. JMockit/Netbeans - проверить AccessController.doPrivileged() был вызван
- 26. Как проверить, что блок вызывается в потоке?
- 27. проверить, если sitecatalyst/Omniture s.t() был вызван
- 28. RSpec - проверить, был ли метод вызван
- 29. Убедитесь, что read() был вызван в SqlDataReader
- 30. Mockito - проверить, был ли вызван метод ANY (объект был обращен)
Пожалуйста, будьте более конкретным. В каком контексте вы пытаетесь определить прерванное состояние? что ты уже испробовал? Что это сделал, и как это отличалось от того, что вы хотели? Пожалуйста, укажите [хороший, _minimal_, _complete_ пример кода] (http://stackoverflow.com/help/mcve), в котором четко показан сценарий, который вы пытаетесь решить, и что вы хотите. –
@Peter Duniho, эти требования обусловлены некоторыми новыми «правилами»? – user626528
Нет «требований». Вы можете отправить любой вопрос, который хотите. Но все остальные могут игнорировать его, проголосовать, что угодно. Когда кто-то попросит вас улучшить свой вопрос, вам следует воспользоваться _you_. «Правила» (как вы его описали) не новы. Они четко изложены в ссылке, которую я уже предлагал, а также в http://stackoverflow.com/help/how-to -ask, а также в других разделах справочного центра на сайте. Они давно. –