Можно ли из потока узнать его родителя ?
От: Аноним  
Дата: 18.01.11 18:04
Оценка:
Есть несколько потоков которые создаются из основного потока.
В этих потоках порождаются асинхронные операции по завершению которых хотелось бы знать из какого потока они были вызваны.


Т.е. допустим у нас создано 3 потока с threadid = 1,2,3 в каждом была вызвана асинхорнная операция которая выполняется в своем потоке и если по завершению асинхронной операции в asyncallback посмотреть Thread.CurrentThread то этот поток будет из пула потоков и у него естественно свой threadid отличный от основных. Так вот — как можно добраться до потока который инициировал асинхронный запрос.
Re: Можно ли из потока узнать его родителя ?
От: Pavel Dvorkin Россия  
Дата: 18.01.11 18:33
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть несколько потоков которые создаются из основного потока.

А>В этих потоках порождаются асинхронные операции по завершению которых хотелось бы знать из какого потока они были вызваны.


А>Т.е. допустим у нас создано 3 потока с threadid = 1,2,3 в каждом была вызвана асинхорнная операция которая выполняется в своем потоке и если по завершению асинхронной операции в asyncallback посмотреть Thread.CurrentThread то этот поток будет из пула потоков и у него естественно свой threadid отличный от основных. Так вот — как можно добраться до потока который инициировал асинхронный запрос.


Задача некорректно поставлена. Поток, создавший данный, мог давно закончиться, а новый поток с тем же ID мог быть создан.

ИМХО тут надо как-то передать в запрос некий параметр, так, чтобы потом получить в фунции завершения. Что-то, видимо, с IAsyncResult,AsyncState
With best regards
Pavel Dvorkin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.