Всем привет.
Что-то, казалось бы, задача совсем простая. Но я так и не нашел как ее решить. Точнее как получить колстек имея объект типа Thread (System.Threading.Thread) я сно. Но не ясно,
как найти все Thread в процессе?
Есть:
Process.GetCurrentProcess().Threads
но он возвращает коллекцию загадочноых объектов ProcessThread, а мне нужны именно Thread, так как я хочу получить по ним колстеки каждого потокаЮ, а как получить списко Thread.
В общем, есть ли способ получить дотнетные колстеки всех потоков?
Причем все это еще нажуно на Xamarin. Так что вынь-апишные финты не канают.
https://stackoverflow.com/questions/8386592/difference-between-thread-class-and-processthread-class-in-net :
ProcessThread is rather a Thread Info class on threads of a process. You cannot start, stop or abort it, it just some information on the thread.
тут
https://stackoverflow.com/questions/10315862/get-list-of-threads ещё пишут про ClrThread, у него наверное, CallStack имеется
Здравствуйте, takTak, Вы писали:
T>https://stackoverflow.com/questions/8386592/difference-between-thread-class-and-processthread-class-in-net :
T>ProcessThread is rather a Thread Info class on threads of a process. You cannot start, stop or abort it, it just some information on the thread.
Ну, вот и получается, что получить потоки нельзя.
Но все еще печальнее:
https://github.com/mono/mono/blob/master/mcs/class/corlib/System.Diagnostics/StackTrace.cs#L153
StackTrace умеет работать только с текущим потоком. Они этот конструктор для галочки сдеалали.
T>тут https://stackoverflow.com/questions/10315862/get-list-of-threads ещё пишут про ClrThread, у него наверное, CallStack имеется
Это майкросовстовская байда. Она под Моно не работает.
Нужен аналог под Моно.
а что, под моно дебаггера нет? там же вся эта информация и требуется...
так а чего ты паришься, если нашёл? вызвать метод ты можешь через Reflection:
https://stackoverflow.com/questions/11908156/call-static-method-with-reflection
Здравствуйте, takTak, Вы писали:
T>а что, под моно дебаггера нет? там же вся эта информация и требуется...
Есть. Но вряд ли кто-то из пользователей, при проблемах с софтиной из маркета, будет им пользоваться
.
T>так а чего ты паришься, если нашёл? вызвать метод ты можешь через Reflection:
T>https://stackoverflow.com/questions/11908156/call-static-method-with-reflection
Собственно уже вызываю. Я это дело нашел в процессе чтения исходников Моно (уже после того как тут вопрос задал).
T>>а что, под моно дебаггера нет? там же вся эта информация и требуется...
VD>Есть. Но вряд ли кто-то из пользователей, при проблемах с софтиной из маркета, будет им пользоваться .
а что, моновский дебаггер прямо из си метаинформацию считывает? странно, что они обертку не сделали
Здравствуйте, VladD2, Вы писали:
VD>Собственно уже вызываю. Я это дело нашел в процессе чтения исходников Моно (уже после того как тут вопрос задал).
Уже не вызываю. Глюкодром страшний. Один телефон грохнулся при чтении результата, другой при попытке получить через рефлексию ссылку на этот метод. В общем, на сегодня решение не рабочее. Разве что более новых версиях Моно подправят это дело. Тесты вроде бы есть.