Потоки

Тема в разделе ".NET", создана пользователем Balda, 27 мар 2009.

  1. Balda

    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 и поток продолжает дальше работать, а когда он закончит одному компу известно ).
    Можно ли как то очистить поток не дожидаясь когда он закончит свою работу?
     
  2. etc

    etc Гость

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

    Balda Гость

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

    etc Гость

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

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

    Balda Гость

    Ладно, спасиб ))
    Буду искать )
     
Загрузка...
Похожие Темы - Потоки
  1. Mady
    Ответов:
    3
    Просмотров:
    1.476
  2. 203
    Ответов:
    4
    Просмотров:
    1.752
  3. Senset
    Ответов:
    0
    Просмотров:
    2.332

Поделиться этой страницей