• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Потоки

  • Автор темы Balda
  • Дата начала
B

Balda

C# , VS 2008.
Создается фоновый поток для выполнения запроса к БД:
[codebox]
Thread backgroundThread = new Thread(new ThreadStart(ExecuteQuery));
backgroundThread.IsBackground = true;
backgroundThread.Start();[/codebox]
Рабочий метод потока:
[codebox]
private void ExecuteQuery()
{
try
{
sqlDataAdapter1.Fill(MyTable);
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}[/codebox]
Теперь пытаюсь остановить выполнение потока:
[codebox]
backgroundThread.Abort();[/codebox]

Так вот, проблема в том, что когда поток выполняет какой-то большой запрос к БД, то аборт не останавливает выполнение потока.
ThreadState устанавливается в AbortRequested и поток продолжает дальше работать, а когда он закончит одному компу известно ).
Можно ли как то очистить поток не дожидаясь когда он закончит свою работу?
 
E

etc

Если только задовить поживому, но это неправильно.
 
B

Balda

А что же с ним ещё можно сделать, если исключение на аборт генерится, но поток его не замечает пока работать с базой не закончит ?
Тут только давить ))
Кстати, а как это можно сделать?
 
E

etc

Давить может привести к печальным последствиям ...

Как ... а вот и не скажу, бо незнаю, в смысле не помню, чтото с терминайтом должно быть связано.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!