Перейти к содержанию
  • Регистрация

Поиск сообщества

Показаны результаты для тегов 'ttask'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Общие вопросы
    • Анимация
    • Графика
    • Стили
    • Базы данных и REST
    • Компоненты
    • Положение, размеры, выравнивание
    • Работа с текстом
    • Приложение и формы
    • Отладка
    • Развертывание приложений
    • Вопросы по языку Object Pascal и RTL
    • Общая информация о TControl
    • События
    • Прочие вопросы
  • Вопросы по платформам
  • Вопросы по использованию RAD Studio
  • Native FGX
  • Обучение
  • Поиск специалистов по FireMonkey
  • Дополнительные ресурсы по FireMonkey
  • Организация работы данного форума
  • Видеокурсы

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


StackOverflow


Защита от ботов


Город


Интересы

Найдено: 2 результата

  1. Помогите разобраться с потоками, ниже приведенный код на виде работает а на андроиде замораживает основной поток, помогите пожалуйста разобраться в чем проблема. procedure TForm2.Button1Click(Sender: TObject); begin TTask.Run( procedure begin TThread.Synchronize(TThread.CurrentThread, procedure begin MediaPlayer1.FileName := 'http://cdndl.zaycev.net/228184/8640962/lana_del_rey_-_hope_is_a_dangerous_thing_for_a_woman_like_me_to_have_but_i_have_it_%28zaycev.net%29.mp3?ext.page=default'; MediaPlayer1.Play; end); end); end; end.
  2. Хочу поделится своим модулем, некой альтернативой TTask, которой я пользуюсь уже довольно продолжительное время. Возможно кому то будет полезно. AsyncTask это глобальная функция в модуле, которая возвращает интерфейс IAsyncTask. По этой причине нет нужды специально создавать объект и заботится о его удалении. Пример использования: procedure GetAsyncRequest(const aUrl: string); var LResult: string; begin AsyncTask.Run( procedure begin // это основной метод потока, он не синхронизирован. От сюда нельзя обращатся к визуальным компонентам // или переменным вне функции без синхронизации (если необходимо) LResult := HttpRequest.Get(aUrl); end, procedure begin // Эта процедура выполнится при успешном завершении потока (без exception). // Процедура синхронизированна, по этому тут можно обращатся к любым визуальным компонентам ShowMessage(LResult); end, procedure(E: Exception) begin // Эта процедура выполнится только если во время работы потока произошла ошибка ShowException(E); end, procedure begin // Эта процедура выполнится в любом случае (после завершения потока), в не зависимости была ошибка или нет ShowMessage(LResult); end ); // обратите внимание, что обязательно задать только первую процедуру, остальные можно не указывать или передать вместо них nil. Например так: AsyncTask.Run( procedure begin ... end, nil, procedure(E: Exception) begin ShowException(E); end); Async.Task.pas.zip
×
×
  • Создать...