Ну вот я и добил набор компонентов для работы с массивами MT-потоков. Набор состоит из трех основных компонентов -- MT_MTArray, MT_MTArrayRW и MT_MTArrayEnum
------------ Дoбавленo:
Galkov, что скажешь по этим компонентам? Да и по остальным (MT_AddData и MT_Stack). Хочу знать твое мнение.
-- Удалено с выходом пакета для работы с MT-потоками --
Этот топик читают: Гость
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
карма: 22 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Мое мнение таково, что прием "вертикальных" данных в "горизонтальный" поток (через _Get) без копирования - приведет к проблемам
Ровно к таким же, как в топике с накоплением MT-данных, где тв первый раз спрашивал про MT Скажем, читаешь элемент массива, первой точной хаба меняешь данные в этом месте массива, второй точкой используешь ранее прочитанное |
|||
карма: 9 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
Galkov, я очень хорошо усвоил эту проблему, и не раз на нее натыкался, но мне показалось, что я от этого избавился при возвращении данных вот в этом месте
|
|||
карма: 22 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Ну может и не досмотрел....
|
|||
карма: 9 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
Galkov, всеравно, спасибо.
|
|||
карма: 22 |
|
Ответов: 9906
Рейтинг: 351
|
|||
nesco писал(а): В данном месте я делаю копию данныхОтсюда вытекает вопрос: а в каком месте ты уничтожаешь эту копию
Разве _Set не занимается копированием |
|||
карма: 9 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
Galkov писал(а): Отсюда вытекает вопрос: а в каком месте ты уничтожаешь эту копиюGalkov писал(а): Разве _Set не занимается копированием |
|||
карма: 22 |
|
Ответов: 9906
Рейтинг: 351
|
|||
nesco писал(а): лишний раз перестраховался, сейчас уберу Только не забудь в _Set поменять местами уничтожение и копирование ------------ Дoбавленo: Хотя зря я это наверное, если данные на улицу только в виде копий попадают....... |
|||
карма: 9 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
Galkov писал(а): Отсюда вытекает вопрос: а в каком месте ты уничтожаешь эту копиюGalkov писал(а): Разве _Set не занимается копированием |
|||
карма: 22 |
|
Ответов: 9906
Рейтинг: 351
|
|||
nesco писал(а): копию удалять нельзя,nesco писал(а): Попробовал, тут же получил фигу |
|||
карма: 9 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
Хотел подробнее разобрать _Set
------------ Дoбавленo: Про _Get тоже интересно
Galkov писал(а): Не аргументЯ понимаю, уточню -- тупое убирание Copy(@dt,@dt) приводит к краху. |
|||
карма: 22 |
|
Ответов: 9906
Рейтинг: 351
|
|||
nesco писал(а): dt очищать нельзя -- это хранилищеА я всегда думал, что очищать нельзя, потому что не создавал... nesco писал(а): dt -- хранилище, оно очишается по выходуnesco писал(а): уточню -- тупое убирание Copy(@dt,@dt) приводит к краху |
|||
карма: 9 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
Galkov писал(а): Чего-чегоПоторопился выразиться -- указатель на область данных. Если я применяю к нему FreeData(dt), то данные очищаются, я пробовал, и, действительно, данные пропали. Вот тут я пытался сделать так
Galkov писал(а): Мда...
А я всегда думал, что очищать нельзя, потому что не создавал...
|
|||
карма: 22 |
|
Ответов: 9906
Рейтинг: 351
|
|||
nesco писал(а): Если я применяю к нему FreeData(dt)"Если" - не интересует. Интересуют вышеозначенные причины для удаления. Она может быть одна: я эти данные и создавал. nesco писал(а): И получил крэшПоследнее 768-е китайское предупреждение: ДО комментариев вышеозначенная причина для FreeData - БЫЛА. nesco писал(а): а вот тутПисать коды надо так, чтобы не употреблять "а вот тут" про другие методы. Ты, как автор кодов, не можешь знать, сколько раз будет сделано "а вот тут" и сколько "а вот здесь", и совпадут ли между собой эти количества. Вывод: "а вот тут" - не говорит вообще ни о чем. |
|||
карма: 9 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
Galkov писал(а): Писать коды надо так, чтобы не употреблять "а вот тут" про другие методы.Но вот не понял я, как я могу применять _Set к данным которыя я не добавил в _Add? Galkov писал(а): Последнее 768-е китайское предупреждение: ДО комментариев вышеозначенная причина для FreeData - БЫЛА.Там, вроде про копию говорили, а не про FreeData. ------------ Дoбавленo: Galkov, исправил, собственно, сам массив (параллельно нашел тупую ошибку в индексации списка ), выкинул переменные и оставил только работу со списком. ------------ Дoбавленo: А вот пример для проверки динамической работы MTArray
------------ Дoбавленo: Galkov, что скажешь? Жду, жду ответа, а ты молчишь. Хорошо, если ткнешь пальцем, где чего не так. ------------ Дoбавленo: Я еще пересмотрел код и добавил в _Set и _Add FreeData
|
|||
карма: 22 |
|
15