Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Потоки в C#
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Программирование
Prinz
Подскажите пожалуйста как прервать поток.
Есть функция, в которую передаются определённый класс.
В этой функции есть цикл for.

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

Что подскажите???
Prinz
Имеется в C# аналог Terminated?
И как правильнее вот эту конструкцию запустить в потоке:

SettingsForMaps stmap = new SettingsForMaps();
stmap.DeltaMouseX = DeltaX;
stmap.DeltaMouseY = DeltaY;
stmap.EnableDisable3D = ED3D;
stmap.InMertrNaSm = MertrNaSm;
stmap.MeinZoom = Zoom;
stmap.UrovenDetail = Level;
stmap.abortDrawEvent = abortDrawing; //делаю сейчас так, отсылая запрос о прерывании потока в функию, но WaitOne тормазит жутко. Это совсем мне не подходит.
handlemap.SetParameters(stmap);
handlemap.DrawMap(bitmapmap, 0, 0, stmap);
codier
Если из потока вызвается неуправляемая функция из dll, то получается что поток будет тоже не управляемым. Думаю что можно сделать ему Abort и ловить в вызвавшем потоке ThreadAbortExcpetion.
Если функция в dll ваша и нужно её закруглять в процессе работы, то может следует добавить этот функционал в саму функцию? Заведите какой-то объект синхронизации и проверяйте его в теле функции периодически, а выставляйте его извне. Если функция из dll вызывается только из одного потока, то этот флаг можно сделать и глобальным для dll и управлять им из другой функции dll.

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

Блин, дату не заметил sad.gif( Удалите нафиг, раз уже не нужно...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.