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 и поток продолжает дальше работать, а когда он закончит одному компу известно ).
Можно ли как то очистить поток не дожидаясь когда он закончит свою работу?
Создается фоновый поток для выполнения запроса к БД:
[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 и поток продолжает дальше работать, а когда он закончит одному компу известно ).
Можно ли как то очистить поток не дожидаясь когда он закончит свою работу?