Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 | 3 |

 

  Вопрос: 2010, multithreading Добавлено: 02.01.10 13:07  

Автор вопроса:  Winand | Web-сайт: winandfx.narod.ru
С момента выхода Visual Studio 6 прошло что-то около 12 лет? И вот он, хоть и кривоватый, но safe мультитрединг. Музей бейсика пополнен новым экспонатом=)
To make our thread work smoothly, we need to set a memory address in the TLS (Thread's Local Storage) with the index same that VB uses while accessing
data. First we need to extract the TLS index from MSVBVM60.dll. I extracted it from __vbaSetSystemError procedure. Then
we need to set a Memory address in it so that it could act as a TLS. And just any memory won't work too. Its because
VB just doesn't accesses the TLS only but also the contents of the TLS. A TLS contains many things and among them can be
other memory addresses too. So if we do set another memory then VB will access say a memory address that it stored from the
main thread in the TLS but it will get another address or perhaps 00000000. And again when it access that 00000000 Memory
Access Violation occurs. So a better fix will be to store the same memory address that main thread uses. But we shall be
careful to not override that memory because it can hamper the functioning of main thread as well as our thread.

http://www.planet-source-code.com/vb/scripts/showcode.asp?txtCodeId=72776&lngWid=1

Ответить

  Ответы Всего ответов: 32  

Номер ответа: 1
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #1
Добавлено: 02.01.10 13:45
Вкусно!!!

Ответить

Номер ответа: 2
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #2 Добавлено: 02.01.10 14:28
Ссыль не смотрел, у мну есть стабильный вариант, но нет времени развить его, там просто длинный цикл.

Ответить

Номер ответа: 3
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #3
Добавлено: 02.01.10 15:32
Который средствами вб раскидывается по ядрам))))

Ответить

Номер ответа: 4
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #4 Добавлено: 02.01.10 16:19
Который средствами винды раскидывается по ядрам :-D

Ответить

Номер ответа: 5
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #5
Добавлено: 02.01.10 16:52
Длинный цикл говорите)) То есть, например, к интернет-радиостанции подключаться в цикле? отправил пару байт, принял пару байт, If GetQueueStatus(255) Then DoEvents, и с начала=)

Ответить

Номер ответа: 6
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #6 Добавлено: 02.01.10 18:09
Нееет, ты не понял.
Я имел ввиду как в примере Палача, в отдельном потоке крутится длинный и тормозной цикл, а прога (форма) не висит.

Ответить

Номер ответа: 7
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #7 Добавлено: 02.01.10 18:11
У меня просто нет времени довести его до ума.

Ответить

Номер ответа: 8
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #8
Добавлено: 02.01.10 18:39
А как ты делаешь, например, три отдельных потока, и чтоб каждое по ядру? Или я тебя не правильно понимаю? Или у тебя параллельно с винмаин потоком висит только один для всей лабуды, типо очереди задач, она все, что к ней поступает решает в отдельном потоке?

Ответить

Номер ответа: 9
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #9 Добавлено: 02.01.10 20:18
VBD ты протрезвелбы сначала.
Яже написал "не довел до ума", какие нах три потока?

Ответить

Номер ответа: 10
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #10 Добавлено: 02.01.10 20:33
Я у тя просил готовый пример, ты не дал, а теперь ещё и стебешься вдобавок?
Если мне срочно понадобится мультитрединг я просто куплю твой мегамозг на пару дней и ты мне всё напишешь в лучшем виде :-)
денег мне хватит ...

Ответить

Номер ответа: 11
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #11
Добавлено: 02.01.10 20:53
[Спокойно с улыбкой]
1. Я на тебя не рыпаюсь. :)
2. Я протрезвел. :)
3. Я случайно забыл дать тебе пример :)
[/Спокойно с улыбкой]
[Ухмыляясь]
Мой мозг тебе не по карману)) Это скорее мне твой мозг по карману. :)
[/Ухмыляясь]

Ответить

Номер ответа: 12
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #12 Добавлено: 02.01.10 21:05
Правда?!
Да ты я вижу серьезно!
Не перестаёшь меня удивлять!
Сколько ты готов платить?

Ответить

Номер ответа: 13
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #13
Добавлено: 02.01.10 21:10
А ты?)

Ответить

Номер ответа: 14
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #14 Добавлено: 02.01.10 21:14
Удали свой пост 13, даю шанс.

Ответить

Номер ответа: 15
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #15 Добавлено: 02.01.10 21:26
Ну раз тебя всётаки интересует этот вопрос значит мне по карману :)

Ответить

Страница: 1 | 2 | 3 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам