реклама на сайте
подробности

 
 
> Потоки в C#, Прерывание потока в C#
Prinz
сообщение Jul 28 2011, 04:51
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 184
Регистрация: 11-09-08
Пользователь №: 40 121



Подскажите пожалуйста как прервать поток.
Есть функция, в которую передаются определённый класс.
В этой функции есть цикл for.

В чём моя проблема. Я хочу завершить поток и надо следовательно выволиться из for.
В билдере я делал всё просто. Я в эиу функцию передовал указательна на терминейт потока. И проблем не было.
Я здесь попробовал WaitOne, но он так сильно тормазит, а быстродействие для меня играет очень большое значение.
Второй нюанс, эта функция в длл.

Что подскажите???
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
codier
сообщение Sep 26 2011, 07:08
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 21-01-05
Пользователь №: 2 113



Если из потока вызвается неуправляемая функция из dll, то получается что поток будет тоже не управляемым. Думаю что можно сделать ему Abort и ловить в вызвавшем потоке ThreadAbortExcpetion.
Если функция в dll ваша и нужно её закруглять в процессе работы, то может следует добавить этот функционал в саму функцию? Заведите какой-то объект синхронизации и проверяйте его в теле функции периодически, а выставляйте его извне. Если функция из dll вызывается только из одного потока, то этот флаг можно сделать и глобальным для dll и управлять им из другой функции dll.

Про второй пост не очень понял. Опишите задачу подробнее.

Блин, дату не заметил sad.gif( Удалите нафиг, раз уже не нужно...

Сообщение отредактировал codier - Sep 26 2011, 07:11
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 19:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01362 секунд с 7
ELECTRONIX ©2004-2016