Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Объявление переменной в VB как volatile
|
|||
|---|---|---|---|
|
#18+
Hello всемогущий ALL. Переменной присваивается значени в ActivX (то есть в отдельном thread) При получении значения переменной в проекте использующем этот ActiveX в ней находятся устаревшии данные. Есть ли смысл в сабже и если есть как это осуществить или есть другие пути. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 13:05 |
|
||
|
Объявление переменной в VB как volatile
|
|||
|---|---|---|---|
|
#18+
Ты передаешь как ByRef и значение не изменяется? И что значит volatile? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 13:24 |
|
||
|
Объявление переменной в VB как volatile
|
|||
|---|---|---|---|
|
#18+
Значение берется by Val Объявление переменной в С/C++ (Win API) volatile int myVal; гарантирует что, значение переменной будет храниться только в переменной (в памяти), а не в регистре процесора или кеше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 13:29 |
|
||
|
Объявление переменной в VB как volatile
|
|||
|---|---|---|---|
|
#18+
2 almuk Ты зачем служебное слово из с++ используешь в VB ? Что скажет с++ компилятор если ты там например введешь сл for i=2 to 12 step 2 print i next i Пошлет тебя подальше и правильно сделает! На VB можно получать доступ к WinAPI функциям , писанных кстати на с++ лишь вызывая их и кидая в них параметры. Все , какие к черту volatile. Вообще , может я и ошибаюсь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 16:22 |
|
||
|
Объявление переменной в VB как volatile
|
|||
|---|---|---|---|
|
#18+
Я и не говорил что использую volatile в VB , Вопрос в том как это осуществить в бейсике ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 18:25 |
|
||
|
Объявление переменной в VB как volatile
|
|||
|---|---|---|---|
|
#18+
автор1) Hello всемогущий ALL. Переменной присваивается значени в ActivX (то есть в отдельном thread) При получении значения переменной в проекте использующем этот ActiveX в ней находятся устаревшии данные. Есть ли смысл в сабже и если есть как это осуществить или есть другие пути. 2) Значение берется by Val О чем все же речь? Что ЭТО осуществить? Что такое "устаревшие данные"? Передача параметра byVal? VB6? Если ЭТО объявление volatile - то НИКАК - в VB нет синтаксического запрета на размещение переменных в регистрах, просто потому, что объявленные переменные он там не размещает никогда. в первом приближении - все что не static - размещается в стеке (По крайней мере то, на что указывает varptr). static сидят в свем специальном разделе DATA Теперь про ByVal и устаревшие данные. Если под устаревшими данными понимается то, что после выхода значение остается таким, как было до входа - это нормально прописанное поведение byval для числовых типов. Строки, массивы и объекты живут своей жизнью. То есть Если данные числовые - они И ДОЛЖНЫ БЫТЬ УСТАРЕВШИМИ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 03:22 |
|
||
|
Объявление переменной в VB как volatile
|
|||
|---|---|---|---|
|
#18+
Я не большой впециалист в VB и может я ошибаюсь. Но если в программе на С/С++ существуют скажем 2 threads один постоянно изменяет значение переменной второй его принимает (переменная глобальная), тот thread который принимает значение переменной берет его из памяти, но новое значение может еще не попасть в память оно находится в кеше процесора или в его регистр. Теперь про ByVal и устаревшие данные. Если под устаревшими данными понимается то, что после выхода значение остается таким, как было до входа - это нормально прописанное поведение byval для числовых типов. Строки, массивы и объекты живут своей жизнью. То есть Если данные числовые - они И ДОЛЖНЫ БЫТЬ УСТАРЕВШИМИ Я знаю что значение переменной изменилось (его изменил первый поток) но второй потокок взявший это значение byVal получил значение переменнай бывшее до изменения в первом потоке, т.к. новое значение переменной еще не попало в память. Для этого и используется volatile. Все описанное относится к С/С++, Но в моей проге на VB есть ActiveXы которые бегают в отдельных потоках и общаются посредством глобальных переменных. И я знаю что значение переменной (глобальной) изменилось в 1м ActiveX-е а 2й ActivX взявший это значее определил его как не изменившееся. Вот я и подумал может ли возникнуть такая ситуация (Multi Thread C/С++) в VB, или у меня в программе на VB баг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 09:48 |
|
||
|
Объявление переменной в VB как volatile
|
|||
|---|---|---|---|
|
#18+
>Но в моей проге на VB есть ActiveXы которые бегают в отдельных потоках и общаются посредством глобальных переменных. И я знаю что значение переменной (глобальной) изменилось в 1м ActiveX-е а 2й ActivX взявший это значее определил его как не изменившееся. Зачем используешь VB если его плохо знаешь, бери свои "сиськи" и вперед. То что ты пишешь про ActiveX полная лажа! Ты еще десяток ActiveX используй , которые "обмениваются значениями" и тогда совсем потонешь Какие к черту потоки, какие камни , дяди Кеши , ты что там вообще делаешь? Знания VB у тебя хромают , а ты сразу ActiveX стряпаешь на нем. Объясни мне зачем ActiveX - ам меняться значениями. Что , в одном всю логику нельзя сделать? Работа с COM - сильная сторона VB , а ты занимаешься извратом. По моему ты просто перегнул палку. Объясни , что тебе нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 10:05 |
|
||
|
Объявление переменной в VB как volatile
|
|||
|---|---|---|---|
|
#18+
Вопрос был предельно прост Есть ли смысл в сабже и если есть как это осуществить или есть другие пути. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 10:24 |
|
||
|
Объявление переменной в VB как volatile
|
|||
|---|---|---|---|
|
#18+
2 Eternal Немного больше уважения к собеседнику. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 10:30 |
|
||
|
Объявление переменной в VB как volatile
|
|||
|---|---|---|---|
|
#18+
2Almuk: покажите примерный код. Может разберемся что к чему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 10:38 |
|
||
|
Объявление переменной в VB как volatile
|
|||
|---|---|---|---|
|
#18+
авторНо если в программе на С/С++ существуют скажем 2 threads один постоянно изменяет значение переменной второй его принимает (переменная глобальная), тот thread который принимает значение переменной берет его из памяти, но новое значение может еще не попасть в память оно находится в кеше процесора или в его регистр. <...тут почикано...> Я знаю что значение переменной изменилось (его изменил первый поток) но второй потокок взявший это значение byVal получил значение переменнай бывшее до изменения в первом потоке, т.к. новое значение переменной еще не попало в память. Для этого и используется volatile. Все описанное относится к С/С++, Еще раз про ByVal - Сие Изобретение предназначенно для того, чтобы копировать ЗНАЧЕНИЕ ПЕРЕМЕННОЙ, а не АДРЕС ПЕРЕМЕННОЙ в стек вызываемой процедуры. Для числовых данных это безоговорочно работает. НЕ РАСЧИТЫВАЙТЕ использовать как общий ресурс, числовую переменную, переданную как ByVаl. В паре с ByVаl так железно отработает объектный тип. ЗЫ А подучить, придется, не только VB... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 11:46 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=32389921&tid=2170162]: |
0ms |
get settings: |
5ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 379ms |

| 0 / 0 |
