Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
 Аватар для 1337trix
23 / 24 / 11
Регистрация: 04.12.2014
Сообщений: 422

Как сделать алгоритм по получению переменной из отдельного потока?

30.01.2016, 08:29. Показов 891. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Друзья, такой вопрос. Как сделать, чтобы переменная добывалась из отдельного потока и в то же время отдельного класса.
Алгоритм таков - создаю поток, запускаю, поток же создает класс, в котором есть алгоритм получения переменной.
Проблема в том, что когда я заставляю алгоритм "застопориться" Thread.sleep(10000); останавливается и форма из главного потока! что скорее всего зависит от того, что переменная добывается в главном потоке.
Что делать? Есть ли алгоритмы, как получить переменную из другого потока и как сделать в этом потоке задержку, без ущерба Главному потоку, на котором держится форма?

________________________________Вот мой код, ОЧЕНЬ надеюсь, что вы поймете и подскажете, как выровнятьмоируки
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
private void BtnActive_Click(object sender, EventArgs e)
{
WorkThread.Start();
}
}
void Work()
{
while (true)
{
WorkClass WC = new WorkClass();
Invoke((MethodInvoker)(() => output(WC.main())));
}
}
 
### WorkClass
int i = 0;
public string MainEnter()
{
Thread.Sleep(9000); //Вот тут у нас рождаются проблемы....
i++;
return i.ToString();
}
______
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.01.2016, 08:29
Ответы с готовыми решениями:

Как изменить свойства ComboBox из отдельного потока
Ребята! Привет! Вопрос такой: есть форма с комбобоксами и текстбоксами, когда я ввожу туда данные, они передаются в процедуру которая...

Как обратиться к элементам разных форм из отдельного потока
Здравствуйте. Столкнулся я тут с одной проблемой, как мне обратиться к элементам разных форм. Опешу ситуацию есть материнская форма на...

Как отменить все асинхронные операции отдельного потока сервера ?
Добрый день, я хотел бы реализовать принцип работы на своём сервере(Boost asio) когда потоки и связанные с ними асинхронные операции...

3
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
30.01.2016, 08:45
1337trix, чтобы вас поняли, надо:
1) Использовать теги.
2) Отформатировать код-даже на таком куске невозможно с ходу понять, где открывается какая скобка, а где закрывается.
3) Овладеть терминологией. Поток не создает никакой класс-там создается объект. Да и остальное я лично так толком и не понял.

Ясно, что вы пытаетесь вызывать Sleep в главном потоке и все виснет. Как я уже писал в другой теме,этого делать нельзя, а код внутри Invoke выполняется синхронно в том потоке, в каком находится объект, чей метод Invoke был вызван. То есть в вашем случае-в главном потоке, в котором форма. А вам, по всей видимости, это не нужно. Либо в отдельном потоке код со Sleepом выполняйте, либо используйте async await и класс Task.
0
30.01.2016, 09:53

Не по теме:

EvilFromHell, не поможешь? написать программу которая считает сколько раз встречается введённое с клавиатуры число в векторе A(n)



 Комментарий модератора 
Обсуждение следует вести в рамках своей темы
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
30.01.2016, 10:01
vigfam, я вижу вы уже создали тему по этому поводу. Выложите какие-нибудь наработки и поясните что не получается-тогда кто-нибудь(возможно и я) обязательно поможет. А темы, где ничего нет кроме условия задачи, я лично принципиально не смотрю. Думаю, я такой не один.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.01.2016, 10:01
Помогаю со студенческими работами здесь

Скриншот формы из отдельного потока
Подскажите, нужно получить Form1 из другого потока, как изменять texbox'ы и т.д из потоков я знаю, а как получить Form1? Добавлено...

Изменение ImageView из отдельного потока
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ...

Доступ к SWING из отдельного потока
Привет. Прочитал массу инфы, но ответа так и не нашел/не понял. вот форма сгенерина в netbeans. Form.java public class Form...

Вывод информации из отдельного потока на форму
Приложение должно непрерывно выполнять какую-то задачу в отдельном потоке (например принимать и обслуживать сетевые подключения). И нужен...

Signal Slot из отдельного потока в основной
Доброго времени суток. Имеется QTreadPool. Имеется свой Runnable с методом run. Внутри есть сигнал signals: void...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
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 и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru