Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
14 / 14 / 9
Регистрация: 22.11.2012
Сообщений: 62
1

убить поток + datagrid

06.12.2014, 22:29. Просмотров 923. Ответов 2
Метки нет (Все метки)

на форме есть datagrid, каждая строка в нем создается из потока, так же из потока передается текущее состояние функции, запущенной в этом потоке...
Каждая строка - новый поток...
Как по нажатии кнопки в строке datagrid убить относящийся к ней поток и удалить эту строку?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.12.2014, 22:29
Ответы с готовыми решениями:

Как убить поток???
Добрый день всем! Подскажите пожалуйста, как убить поток, не дожидаясь окончания выполнения...

Не получается убить поток сервера
Есть многопоточный сервер (со следующим кодом - ничего умнее метки в одном месте придумать не смог,...

Как убить поток чужого процесса?
Всем привет! Через System.Diagnostics.GetProcesses() получаю список процессов. Свойство Threads...

Текущий поток должен быть задан как поток однопоточного контейнера (STA), чтобы вызовы OLE стали возможны
пишет:Текущий поток должен быть задан как поток однопоточного контейнера (STA), чтобы вызовы OLE...

2
74 / 26 / 19
Регистрация: 13.10.2014
Сообщений: 89
06.12.2014, 23:45 2
Лучший ответ Сообщение было отмечено onfrich как решение

Решение

в начале создаешь например
C#
1
List<Thread> _listThreads
. Соответственно, при добавлении строки запускаешь новый поток и добавляешь этот поток в общий список. При необходимости обращаешься к списку по индексу строки и убиваешь его. Например Thread.Interrupt() или Abort(). а может быть у тебя реализовано через Auto/ManualResetEvent, тогда используешь механизм WaitOne()-Set()... ну типа того наверно
1
14 / 14 / 9
Регистрация: 22.11.2012
Сообщений: 62
07.12.2014, 03:29  [ТС] 3
получилось вот так
C#
1
List<Thread> threads = new List<Thread>();//глобально
создаю поток
C#
1
2
3
4
5
6
int d = Int32.Parse(numericUpDown1.Value.ToString());
          Thread t;
          t = new Thread(delegate() { check(dom.ToString(), d); });
          t.IsBackground = true;
          threads.Add(t);//добавление в лист
          t.Start();

убиваю поток и строку в datagrid, относящуюся к данному потоку
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == 4)
   {
       try
       {
           threads[e.RowIndex].Suspend();
           dataGridView1.Rows.RemoveAt(e.RowIndex);
       }
       catch (Exception) { }
   }
 
        }
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.12.2014, 03:29

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Результат запроса MsSql в DataGrid в отдельный поток ?
Добрый день, подскажите пожалуйста,или направьте в какую сторону копать. Имеем приложение c#, по...

Получить данные с выбранной ячейки DataGrid и поместить их в другой DataGrid
Добрый вечер, кто может помочь, плииз, у меня на форме расположены 2 datagrida, связанных...

Отображение данных в одном datagrid при клике в другом datagrid
Здравствуйте! Хотел уточнить, как можно реализовать возможность при клике на форме в dataGrid1,...

Сессию нужно убить memberid нужно принудительно убить и страницы... как ?
&lt;SCRIPT LANGUAGE=VBScript RUNAT=Server&gt; SUB Session_OnStart Session.Timeout = 3 ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.