подскажите плз как можно в одном потоке получить значение переменной из другого потока(во время его выполнения)?
Hello,
> подскажите плз как можно в одном потоке получить значение переменной из другого потока(во время его выполнения)?
Послать в другой поток сообщение.
Posted via RSDN NNTP Server 2.0 alpha
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
>>> подскажите плз как можно в одном потоке получить значение переменной из другого потока(во время его выполнения)?
> TK>Послать в другой поток сообщение.
> а можно пример, если не трудно?
Сообщения можно посылать через некоторую общую область данных (например, Singleton объект). Либо, можно ничего не слать, а каждый поток будет читать поле одного и тогоже класса сериализуя доступ через System.Threading.Monitor
Posted via RSDN NNTP Server 2.0 alpha
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Здравствуйте, <Аноним>, Вы писали:
А>подскажите плз как можно в одном потоке получить значение переменной из другого потока(во время его выполнения)?
Если потоки в одном процессе (в терминах потоков/процессов виндов), то просто из одного потока читай переменную другого потока. Кстани переменные, как и память вообще принадлежит процессу а не потокам.
В дот нэт — тоже все просто.
x // если переменная глобальная
someObject.X // если переменная является членом глобального объекта
this.X // если переменная - является членом текущего класса и т.д.
Здравствуйте, Аноним, Вы писали:
А>подскажите плз как можно в одном потоке получить значение переменной из другого потока(во время его выполнения)?
Ну самый простой путь-что бы переменная была глобальной для обоих потоков
или при создании потока передать в него адрес переменной в качестве указателя(LPVOID)
а потом разыменовать.
типа MyType* t=(MyType*)lParam;
Если нужно отслеживать изменение переменной в другом потоке, то втом другом, потоке, можно воспользоваться
функцией PostThreadMessage . (по моему пишется так) и передать значение в качестве параметра функции.
Только в том потоке , где нужно отловить изменения нужен цикл обработки сообщений,
и надо обьявить свое сообщение типа.. #define UM_MYMESSAGE WM_USER+1.
В общем все что пришло в голову на скорую руку....
С удовольствием узнаю другие варианты