Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685

Работа с потоками

26.04.2018, 05:36. Показов 1397. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброе время суток. И сразу к проблеме, есть 2 потока которые считывают нажатие клавиш на клавиатуре (в примере это будет "Р"), при ее нажатии открывается "инвентарь". При первом нажатии все работает нормально видно как в инвентаре лежит определенная вещь, но при втором открытии инвентаря ее нет. Как я понимаю при втором открытии "инвентаря", значение которое передалось в List -"инвентаря" затирается?! как это исправить?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.04.2018, 05:36
Ответы с готовыми решениями:

Работа с потоками
В буфере имеется N записей типа Type. К этим записям на чтение и на запись обращаются m потоков. Каждый из потоков может изменить...

Работа с потоками
Возникли трудности с потоками. Необходимо, чтобы один поток считывал с консоли, другой выводил эту же информацию на консоль. Поток, который...

Работа с потоками
Здравствуйте! Такой вопрос. Как на выполнение какой либо операции, например на чтение файла веслом 24 гб, выделить 1,2 или 3 потока, и...

6
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
26.04.2018, 05:45
Есть потокобезопасные списки https://docs.microsoft.com/ru-... work-4.7.1
0
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685
26.04.2018, 08:05  [ТС]
ТабуретY, а можно разъяснение небольшое .... по поводу этих списков

Добавлено через 7 минут
ТабуретY, спасибо за помощь, почитаю, думаю разберусь

Добавлено через 1 час 31 минуту
ТабуретY, Вы не подскажите как с основного потока передать параметр в дочерний?
0
182 / 145 / 94
Регистрация: 30.07.2013
Сообщений: 579
26.04.2018, 10:38
Esso11,

C#
1
2
3
4
5
6
7
8
int parameter = 8;
Thread childThread = new Thread(YourMethod);
childThread.Start(parameter)
 
private void YourMethod(object par)
{
   int parameter = (int)par;
}
0
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685
26.04.2018, 12:57  [ТС]
C#
1
2
3
4
5
6
7
8
9
10
11
Console.WriteLine("для открытия рюкзака нажмите (Р)");
                                string h = Console.ReadLine();
                                string shmot = drop.Weapon;
                                System.Threading.Thread myThread = new System.Threading.Thread( new ThreadStart(qq));
                                myThread.Start();
                                
                                if (h.ToLower() == "p" || h.ToUpper() == "Р")
                                {
                                    Backpack bp = new Backpack(new Swords(drop.Weapon, 1), new Empty("", 1), new Shields("", 1), new ShoesforWizard("", 1));
                                    bp.ShowAll();
                                }
далее создаю метод второго потока
C#
1
2
3
4
5
6
7
8
9
10
11
public static void qq(/*string sh*/)
        {
            string sh = null;
            string shmot = (string)sh;
            string h = Console.ReadLine();
            if (h.ToLower() == "p" || h.ToUpper() == "Р")
            {
                Backpack bp = new Backpack(new Swords("", 1), new Empty("", 1), new Shields("", 1), new ShoesforWizard("", 1));
                bp.ShowAll();
            }
        }
и тут проблема при втором нажатии на "Р" лист пустой. Может кто чего подскажет или укажет на ошибку?!
0
182 / 145 / 94
Регистрация: 30.07.2013
Сообщений: 579
27.04.2018, 08:54
Esso11,

конструкторы классов приведите, непонятно как объекты создаются и что должно показаться методом Backpack.ShowAll()
C#
1
2
                Backpack bp = new Backpack(new Swords("", 1), new Empty("", 1), new Shields("", 1), new ShoesforWizard("", 1)); 
                bp.ShowAll();
0
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685
27.04.2018, 13:18  [ТС]
meridbt,
C#
1
2
3
4
5
6
7
public void ShowAll()
    {
        foreach (var drop in Items)
        {
            Console.WriteLine($"Предмет: {nameof(drop.Weapon)} - {drop.Weapon}");
        }
    }
конструктор:
C#
1
2
3
4
5
 public Swords(string name, int count)
    {
        Weapon = name;
        Count = count;
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.04.2018, 13:18
Помогаю со студенческими работами здесь

Работа с потоками
Всем привет, прошу подсказать есть программка рисующая спираль Архимеда так вот нужно распределить потоки между дугами фигуры (один поток -...

Работа с потоками
В общем, сделал рекурсивное удаление файлов и папок в несколько потоков, но вылетают эксепшены что файл уже удален. Можно ли как-то...

Работа с потоками
Вообщем у меня такая ситуация. Хочу при загрузке формы запустить функцию в новом потоке. В этой функции у меня добавляются элементы,...

Работа с потоками
Объясните мне мои ошибки и как их поправить(грузит ЦП и делает невозможным работу с GUI программы - лагает ужасно) Есть некий класс, в...

Работа с потоками!
Ребята, никогда раньше с потоками не работал... Вот помогите решить проблему Есть метод DrawClicked(bubbleSort, (Button)sender,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru