| imho.ws |
![]() |
|
|
|
# 2 |
|
Добрый фей-мод
Регистрация: 18.09.2002
Адрес: Израиль
Пол: Male
Сообщения: 4 155
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Используй потоки (threads).
2 варианта написания: 1) создаешь поток через ThreadPool и контролируешь его (остановка/запуск) с помощью event'ов 2) Более правильный вариант. Создать объект Thread, запустить его. Поскольку объект в твоих руках - ты полностью контролируешь его. Когда захочешь - сделаешь Suspend, захочешь - Resume.
__________________
Фотолюбительщина Пока слова не сказаны - ничего нет. Но если они сказаны, даже то чего нет становится реальностью. |
|
|
|
|
# 3 |
|
Member
Регистрация: 12.01.2003
Сообщения: 252
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Попробуй использовать делегат для запуска этих вычилений и один из его методов Invoke или BeginEnvoke, т.е. асинхронные или синхронные делегаты.
Всё это не плохо описано Крисом Селлзом (Chris Sells), прямые линки на статейки по русски: _http://www.gotdotnet.ru/LearnDotNet/NETFramework/599.aspx _http://www.gotdotnet.ru/LearnDotNet/NETFramework/598.aspx _http://www.gotdotnet.ru/LearnDotNet/NETFramework/596.aspx |
|
|
|
|
# 4 |
|
Добрый фей-мод
Регистрация: 18.09.2002
Адрес: Израиль
Пол: Male
Сообщения: 4 155
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Da(nil)ka
И чем это по-твоему отличается от 1-го способа? Тот-же самый ThreadPool, только в этом случае для контроля над остановкой придется использовать events в самой функции алгоритма, что не есть красиво.
__________________
Фотолюбительщина Пока слова не сказаны - ничего нет. Но если они сказаны, даже то чего нет становится реальностью. |
|
|
|
|
# 6 |
|
Добрый фей-мод
Регистрация: 18.09.2002
Адрес: Израиль
Пол: Male
Сообщения: 4 155
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
aramis
Интересо, а ты шапку читал? Человеку надо не просто запустить вычисления асинхронно, а управлять ими: остановить или запустить вновь.
__________________
Фотолюбительщина Пока слова не сказаны - ничего нет. Но если они сказаны, даже то чего нет становится реальностью. |
|
|
|
|
# 7 | |
|
Guest
Сообщения: n/a
|
Цитата:
|
|
|
|
# 8 | |
|
Junior Member
Регистрация: 31.10.2002
Сообщения: 150
![]() |
Цитата:
|
|
|
|
|
|
# 9 |
|
Добрый фей-мод
Регистрация: 18.09.2002
Адрес: Израиль
Пол: Male
Сообщения: 4 155
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Yan1k
> "Поточные функции не поддерживают входных параметров" Кто это Вам сказал? WaitCallback использующийся в ThreadPool имеет signature метода с входным параметром и возвр. void : ThreadPool.QueueUserWorkItem( new WaitCallback( this.PostInitCallback ) ); ... private void PostInitCallback( object state ) { ... В любом случае, как я говорил, использование ThreadPool не самый лучший способ. Я предпочел бы создание своего объекта Thread. aramis > "чтобы обработать те действия, которые стоят "в очереди" у формы( прорисовка и тд). обработка кнопок " А причем здесь прорисовка кнопок и другие действия формы ??? Все человеку надо - это запустить алгоритм вычислений в background'е и иметь возможность остановить/возобновить его.
__________________
Фотолюбительщина Пока слова не сказаны - ничего нет. Но если они сказаны, даже то чего нет становится реальностью. |
|
|
|
|
# 10 | |
|
Junior Member
Регистрация: 31.10.2002
Сообщения: 150
![]() |
Цитата:
|
|
|
|
|
|
# 11 |
|
Guest
Сообщения: n/a
|
[QUOTE='[Ghost]']Yan1k
> "Поточные функции не поддерживают входных параметров" Кто это Вам сказал? WaitCallback использующийся в ThreadPool имеет signature метода с входным параметром и возвр. void : ThreadPool.QueueUserWorkItem( new WaitCallback( this.PostInitCallback ) ); ... private void PostInitCallback( object state ) { ... В любом случае, как я говорил, использование ThreadPool не самый лучший способ. Я предпочел бы создание своего объекта Thread. Я и имел ввиду не то что используется в ThreadPool, а обычный поток, у него поточная функция БЕЗ параметров. |