powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / глобальные переменные не меняются в новом потоке
25 сообщений из 26, страница 1 из 2
глобальные переменные не меняются в новом потоке
    #40019738
qlewerok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
передаю в пул функцию NwBra и строку httpss
Код: vbnet
1.
ThreadPool.QueueUserWorkItem(New WaitCallback(AddressOf NwBra), httpss)

в классе form1 объявляю список строк
Код: vbnet
1.
Dim o4eredb As New List(Of String)

функция NwBra должна добавлять в список строк o4eredb строку httpss, но ничего не происходит, подскажите, что не так?
Код: vbnet
1.
2.
3.
4.
Public Sub NwBra(ByVal httpss As Object)
        o4eredb.Append(httpss)
        Console.WriteLine(o4eredb.Count)'возвращает 0
End Sub
...
Рейтинг: 0 / 0
глобальные переменные не меняются в новом потоке
    #40019741
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно нужен "volatile", или как оно там у вас в VB называется.
...
Рейтинг: 0 / 0
глобальные переменные не меняются в новом потоке
    #40019742
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя нет, я гоню.

Что за "Append"? У List<T> нет такого метода.
...
Рейтинг: 0 / 0
глобальные переменные не меняются в новом потоке
    #40019745
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, блин, я понял Да ты же метод-расширение LINQ на самом деле вызываешь, и, конечно, сам список у тебя при этом не меняеется. Заменяй на "Add" :))
...
Рейтинг: 0 / 0
глобальные переменные не меняются в новом потоке
    #40019746
qlewerok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthat, есть, только, действительно, как оказалось, он, в отличие от аппенда в других языках программирования, выполняет какую-то дичь. криворукие разрабы не могут договориться между собой использовать одинаковые методы. поменял на .add, спасибо
...
Рейтинг: 0 / 0
глобальные переменные не меняются в новом потоке
    #40019748
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qlewerok
криворукие разрабы не могут договориться между собой использовать одинаковые методы
Криворукие монахи не могут одинаковый устав для своих монастырей договориться сделать
...
Рейтинг: 0 / 0
глобальные переменные не меняются в новом потоке
    #40019749
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Криворукие монахи не могут одинаковый устав для своих монастырей договориться сделать

авторВ чужой монастырь со своим уставом не ходят.
...
Рейтинг: 0 / 0
глобальные переменные не меняются в новом потоке
    #40019751
qlewerok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthatВ чужой монастырь со своим уставом не ходятзашёл в соседний монастырь, сел за стол, а они на нём спят
...
Рейтинг: 0 / 0
глобальные переменные не меняются в новом потоке
    #40019755
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Shocker.Pro
Криворукие монахи не могут одинаковый устав для своих монастырей договориться сделать

авторВ чужой монастырь со своим уставом не ходят.
спасибо, кэп!
...
Рейтинг: 0 / 0
глобальные переменные не меняются в новом потоке
    #40019777
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В документации для такого случая даже примерчик с соответствующим комментарием есть:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
// Creating a list of numbers
List<int> numbers = new List<int> { 1, 2, 3, 4 };

// Trying to append any value of the same type
numbers.Append(5);

// It doesn't work because the original list has not been changed
Console.WriteLine(string.Join(", ", numbers));


Но монах, видимо, не читатель.
...
Рейтинг: 0 / 0
глобальные переменные не меняются в новом потоке
    #40020013
qlewerok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сон Веры Павловны, монах много лет за столом ел
...
Рейтинг: 0 / 0
глобальные переменные не меняются в новом потоке
    #40020021
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант, в его монастыре стол называли кроватью и наоборот.
...
Рейтинг: 0 / 0
глобальные переменные не меняются в новом потоке
    #40020033
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qlewerok
глобальные переменные не меняются в новом потоке
Глобальная переменная не будет меняться при замене Append на Add, и даже если поток останется тот же самый.
Сама постановка вопроса говорит о том, что ты пытаешься писать на языке методом тыка, вместо того, чтобы хоть что-то о нём почитать.

А когда ты нарвешься на глюки многопоточности (потому что List<T> и его метод Add не являются потокобезопасными), виноваты будут опять криворукие разрабы языка, но никак не ты, не удосужившийся хоть что-то прочитать о многопоточной работе в .NET.
...
Рейтинг: 0 / 0
глобальные переменные не меняются в новом потоке
    #40020094
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qlewerok,

Напиши вот так:
Код: c#
1.
2.
3.
4.
public static class AppendRulezzz
{
     public static void Append<T>(this List<T> list, T item) => list.Add(item);
}


И будет тебе такой Append к какому ты привык. Правда на неприятности с ним нарвешься рано или поздно. Но зато будет "как в других языках программирования".
...
Рейтинг: 0 / 0
глобальные переменные не меняются в новом потоке
    #40020101
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qlewerok
Сон Веры Павловны, монах много лет за столом ел

Только не заметил, что это не стол, а тумбочка. Append - это не метод класса List<T>, это extension-метод класса Enumerable (о чем написано в документации по данной выше ссылке), и сигнатура этого метода выглядит как
Код: c#
1.
Append<TSource> (this IEnumerable<TSource> source, TSource element)


т.е. этот метод может быть вызван в виде
Код: c#
1.
Enumerable.Append(myList, listElement)
...
Рейтинг: 0 / 0
глобальные переменные не меняются в новом потоке
    #40020105
qlewerok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сон Веры ПавловныТолько не заметил, что это не стол, а тумбочканет, я программировал больше года до этого в Qt, там append выполняет именно функцию добавления, т.е. чистый add из vb.net
...
Рейтинг: 0 / 0
глобальные переменные не меняются в новом потоке
    #40020107
qlewerok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProА когда ты нарвешься на глюки многопоточности (потому что List<T> и его метод Add не являются потокобезопасными)напишешь, с чем именно могу столкнуться? обычное добавление строки в список же? без всяких проверок наличия записи в разных потоках и тд
...
Рейтинг: 0 / 0
глобальные переменные не меняются в новом потоке
    #40020109
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qlewerok
напишешь, с чем именно могу столкнуться? обычное добавление строки в список же? без всяких проверок наличия записи в разных потоках и тд

К примеру, успешно добавленная с виду строка запросто может потеряться.
...
Рейтинг: 0 / 0
глобальные переменные не меняются в новом потоке
    #40020112
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qlewerok
я программировал больше года до этого в Qt, там append выполняет именно функцию добавления

.NET давно уже open source и лежит на гихабе. Форкни и переименуй методы, как тебе нравится. Можешь даже пулл-реквест потом отправить авторам.
...
Рейтинг: 0 / 0
глобальные переменные не меняются в новом потоке
    #40020125
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qlewerok
Shocker.ProА когда ты нарвешься на глюки многопоточности (потому что List<T> и его метод Add не являются потокобезопасными)
напишешь, с чем именно могу столкнуться? https://yandex.ru/search/?text=многопоточность в net&clid=2207714&lr=213
...
Рейтинг: 0 / 0
глобальные переменные не меняются в новом потоке
    #40020169
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
посмеялся от души, код не потокобезопасный у вас, не факт, что будет работать как вы ожидаете
...
Рейтинг: 0 / 0
глобальные переменные не меняются в новом потоке
    #40020472
qlewerok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman Mejtes, что именно в коде не так?
у меня постоянные флешбеки с вертолетами, как 10 лет назад на этом форуме в моём коде была ошибка
Код: vbnet
1.
2.
if a then b
end if

и несколько страниц упрёков, что надо читать книги/форумы/коран, а не спрашивать такие тупые вопросы. а. ответа, конечно, не было
...
Рейтинг: 0 / 0
глобальные переменные не меняются в новом потоке
    #40020479
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qlewerok
10 лет назад.....упрёков, что надо читать книги/форумы/коран
то есть за 10 лет так и не пришло понимание, что это-таки делать надо?
...
Рейтинг: 0 / 0
глобальные переменные не меняются в новом потоке
    #40020481
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В принципе, а какой реакции можно было бы ожидать человеку, который свои топики начинает с обсирания языка и фреймвора, по которому задает вопрос? Если так бесит - ну не мучай себя, перейди на яву, на дельфи...
...
Рейтинг: 0 / 0
глобальные переменные не меняются в новом потоке
    #40020858
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
В принципе, а какой реакции можно было бы ожидать человеку, который свои топики начинает с обсирания языка и фреймвора, по которому задает вопрос? Если так бесит - ну не мучай себя, перейди на яву, на дельфи...

Вроде ява и шарп на одном уровне по порогу вхождения.
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / глобальные переменные не меняются в новом потоке
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]