Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 13.04.2017
Сообщений: 33
1

Обращение к элементам формы из другого потока

18.09.2018, 10:36. Показов 2675. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Короче говоря многопоточность это моя слабость. Сколько статей перечитал уже, один хрен не пойму как они синхронизируются и как организовать обращение к элементам другого потока из данного.

Может кто объяснит как это сделать. Суть задачи:

у наст есть какой - то Loop (гоняет в отдельном потоке) во время его работы, рандомно добавляется либо удаляется какой - нибудь символ в listBox. Естественно это все дело работает асинхронно. Я пробовал делать через Task, Thread один фиг форма виснет во время работы Loop. Заранее прошу прощение за неграмотное написание. Писать код правильно буду после того как пойму суть ПОТОКОВ. Если пойму решение этой задачи, то моя битва закончится и я смогу перейти на новый уровень. Заранее благодарю!!!

ВОТ ПРИМЕР:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;
 
namespace Exampl2
{
    public partial class Form1 : Form
    {
        public delegate void MyDelegate();
 
 
        public Form1()
        {
            InitializeComponent();            
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            func2();
        }
 
 
        public void func2()
        {
            // здесь код, который будет выполняться в отдельном потоке и ...
            BeginInvoke(new MyDelegate(func1)); // изменяем элемент
        }
 
        private void func1()
        {
            Random rdn = new Random();
            while (true)
            {
                if (rdn.Next(101) > 30)
                    listBox1.Items.Add("123");
                else
                {
                    if(listBox1.Items.Count > 2)
                    listBox1.Items.RemoveAt(listBox1.Items.Count - 1);
                }  
                Thread.Sleep(100);
            }
        }
    }


Так же еще пробовал через класс Thread
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.09.2018, 10:36
Ответы с готовыми решениями:

Обращение к элементам формы из другого потока
Извиняйте за очередную тему. Тут на форуме я уже их много прочитал, но все равно не могу понять эти...

Обращение к элементам формы из завершающегося потока
Есть такая задача. В программу приходят данные по интерфейсу UART. За чтение отвечает дополнительно...

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

Доступ к элементам формы из другого потока
Хочу сделать в фоновом потоке добавление UserControl в StackPanel. Старт потока: Thread t =...

2
Эксперт .NET
10545 / 6473 / 1502
Регистрация: 25.05.2015
Сообщений: 19,613
Записей в блоге: 14
18.09.2018, 10:51 2
В "примере" потоков нет.
Вы по форуму вообще пробовали искать на эту избитую вдоль и поперёк тему?

Цитата Сообщение от Владамир Посмотреть сообщение
после того как пойму суть ПОТОКОВ
Начните с Шилдта, главы 23-24.
0
0 / 0 / 0
Регистрация: 13.04.2017
Сообщений: 33
18.09.2018, 11:03  [ТС] 3
Спасибо кэп... Я как бы помощи просил. Я как бы вижу что там нет потоков
0
18.09.2018, 11:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.09.2018, 11:03
Помогаю со студенческими работами здесь

Обращение к элементам формы из другого файла проекта
Всех с наступающим. Есть проект, работать в котором стало не особо удобно по причине большого...

Доступ к элементам формы из другого класса/Потока
Здравствуйте, у меня есть класс работы потоков, при выполнении метода (В потоке) должна идти запись...

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

Обращение к элементам Form из другого класса
Подскажите, будьте добры, как обратиться к элементу Form1 из другого класса. Мне нужно использовать...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru