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

Остановка паралельного потока

10.03.2016, 17:21. Показов 627. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть программа. Работает в 2 потока. когда первый поток нашёл нужную строку в тексте он выводит сообщение что всёок. как при этом можно остановить второй поток?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.03.2016, 17:21
Ответы с готовыми решениями:

Остановка потока
Доброго времени суток. Есть таймер, работающий в отдельном от основного потоке(Program.Check() -...

Запуск и остановка потока
Правильная ли реализация управления потоком была приведена в программе? Или же есть более...

Корректная остановка потока
есть код формы using System; using System.Collections.Generic; using System.ComponentModel;...

Запуск и остановка потока
Всем привет! private void btnRotate_Click(object sender, EventArgs e) { Thread thread...

9
Эксперт .NET
 Аватар для insite2012
5546 / 4309 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
10.03.2016, 17:22 2
Цитата Сообщение от catvlad Посмотреть сообщение
как при этом можно остановить второй поток?
Очевидно, послать ему сигнал, что пора заканчивать.
0
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 25
10.03.2016, 17:24  [ТС] 3
insite2012, Пробую вызвать из первого потока
C#
1
BeginInvoke(new Action(()=>potok2.Abort()));
Имя potok2 не найдено в текущем контексте
0
Эксперт .NET
 Аватар для insite2012
5546 / 4309 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
10.03.2016, 17:48 4
Цитата Сообщение от catvlad Посмотреть сообщение
potok2.Abort()
catvlad, это не сигнал, это убийство. Причем с особой жестокостью, за такое могут наказать)))
Предположим, есть метод, он что-то делает. Так вот в процессе его работы надо проверять какое-либо общее поле, по которому и принимать решение, работать потоку дальше или остановиться.
0
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 25
10.03.2016, 17:55  [ТС] 5
insite2012, Создан label1. покажите пример как это сделать?
0
Эксперт .NET
 Аватар для insite2012
5546 / 4309 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
10.03.2016, 18:16 6
Цитата Сообщение от catvlad Посмотреть сообщение
Создан label1
Каким боком тут Label?
Цитата Сообщение от catvlad Посмотреть сообщение
покажите пример как это сделать
Для начала хотелось бы увидеть, что вы сделали. А то ваш поток как сферический конь, где он, откуда взялся и что делает - непонятно.
0
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 25
10.03.2016, 18:20  [ТС] 7
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
void Button1Click(object sender, EventArgs e)
        {
            int start,end;
            string family;
            start=Convert.ToInt32(textBox1.Text);
            end=Convert.ToInt32(textBox2.Text);
            family=Convert.ToString(textBox3.Text);
            int end1=(end+start)/2;
            senderobject obj = new senderobject {st=start,en=end1,fam=family};
            
            Thread potok = new Thread(new ParameterizedThreadStart(work));
            potok.IsBackground=true;
            potok.Start(obj);
            
            senderobject obj1 = new senderobject {st=end1,en=end,fam=family};
            
            Thread potok2 = new Thread(new ParameterizedThreadStart(work));
            potok2.IsBackground=true;
            potok2.Start(obj1);
        }
        
        
        public void work (object ob){
   ::: SOME WORK :::
                if (korotkoe=="н"){
                    BeginInvoke(new Action(()=>textBox4.AppendText("!!!Найдено!!! "+i)));
                    break;
                } else {
                    BeginInvoke(new Action(()=>textBox4.AppendText("Мимо "+i+Environment.NewLine)));
            
                param.Clear();
            }
            }
        }
0
Эксперт .NET
 Аватар для insite2012
5546 / 4309 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
10.03.2016, 18:23 8
catvlad, что такое
Цитата Сообщение от catvlad Посмотреть сообщение
::: SOME WORK :::
Какой-то цикл поиска?
0
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 25
10.03.2016, 18:24  [ТС] 9
insite2012, даа
0
Эксперт .NET
 Аватар для insite2012
5546 / 4309 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
10.03.2016, 18:36 10
Цитата Сообщение от catvlad Посмотреть сообщение
даа
Что-то типа такого, возможно.
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
51
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace WindowsFormsApplication3 {
    public partial class Form1 : Form {
        bool completeWork = false;
        public Form1() {
            InitializeComponent();
            button1.Click += Button1_Click;
        }
 
        private void Button1_Click(object sender, EventArgs e) {
            //Запуск задачи-1
            var task1 = Task.Run(() => {
                //Тут ваш код поиска чего-то...
                object arg = new object();
                DoWork(arg);
            });
            var awaiter1 = task1.GetAwaiter();
            awaiter1.OnCompleted(() => {
                completeWork = true;
            });
 
            //Запуск задачи-2
            var task2 = Task.Run(() => {
                //Тут ваш код поиска чего-то...
                object arg = new object();
                DoWork(arg);
            });
            var awaiter2 = task1.GetAwaiter();
            awaiter2.OnCompleted(() => {
                completeWork = true;
            });
        }
        void DoWork(object arg) {
            while (true) {
                if (completeWork) {
                    return;
                }
            }
        }
    }
}
1
10.03.2016, 18:36
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.03.2016, 18:36
Помогаю со студенческими работами здесь

Принудительная остановка и приостановка потока
Как принудительно остановить и приостановить поток? такой код: public void CreateThreads(int...

Остановка потока из потока
Здравствуйте. Нужна ваша помощь с такой вот задачей Class1 c1 = new Class1(); Thread thread =...

Остановка потока
Уважаемые программисты, прошу помощи, ибо не нашел логического объяснения своей проблеме. В моей...

Остановка потока
Доброго времени суток. Пишу первое приложение под андроид, поэтому прошу сильно не пинать. ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Алгоритмы и исполнители
hw_wired 28.01.2025
Введение в алгоритмы В современном мире информационных технологий алгоритмы играют основополагающую роль в решении различных задач и автоматизации процессов. Алгоритм представляет собой точную. . .
Хранение информации
hw_wired 28.01.2025
Введение: Роль систем хранения информации в современном мире В современную эпоху цифровых технологий эффективное хранение информации становится одним из ключевых факторов успешного развития любой. . .
Обработка числовой информации
hw_wired 28.01.2025
Введение в обработку числовой информации В современном мире обработка числовой информации стала неотъемлемой частью как профессиональной деятельности, так и повседневной жизни. Электронные таблицы. . .
Мультимедиа
hw_wired 28.01.2025
Введение в мультимедийные технологии В современном мире мультимедийные технологии стали неотъемлемой частью нашей жизни, проникнув во все сферы человеческой деятельности. Термин "мультимедиа". . .
Обработка текстовой информации
hw_wired 28.01.2025
Введение в обработку текстовой информации В современном мире обработка текстовой информации играет фундаментальную роль в различных сферах человеческой деятельности. Текстовые редакторы стали. . .
Обработка графической информации
hw_wired 28.01.2025
Введение в компьютерную графику Компьютерная графика стала неотъемлемой частью современного цифрового мира, пройдя впечатляющий путь развития от простейших черно-белых изображений до сложных. . .
Python в Алгоритмике: Решение задач
hw_wired 28.01.2025
Введение в Python и Алгоритмику В современном мире программирование стало неотъемлемой частью образования и профессионального развития. Python зарекомендовал себя как один из самых популярных и. . .
Компьютер как универсальное устройство для работы с информацией
hw_wired 28.01.2025
Введение в устройство компьютера Компьютер представляет собой универсальное электронное устройство, предназначенное для автоматической обработки информации. В современном мире компьютер стал. . .
Информация и информационные процессы
hw_wired 28.01.2025
Понятие информации и ее виды В современном мире информация является одним из фундаментальных понятий, пронизывающих все сферы человеческой деятельности. Под информацией понимают любые сведения об. . .
Алгоритмика
hw_wired 28.01.2025
Введение: Основы алгоритмики и её роль в информатике В современном мире программирование и алгоритмическое мышление стали неотъемлемой частью образования и профессиональной деятельности. . . .
Информационное моделирование
hw_wired 28.01.2025
Введение в информационное моделирование В современном мире информационное моделирование стало неотъемлемой частью научной, образовательной и профессиональной деятельности. Это мощный инструмент. . .
Объекты и их имена
hw_wired 28.01.2025
Введение: Основы объектного подхода и их роль в информатике В современном мире информационных технологий объектный подход стал фундаментальным принципом организации и обработки информации. Этот. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru