Форум по программированию Delphi Sources

 



Вернуться   Форум по программированию Delphi Sources > Разное > Исходники и статьи
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.07.2012, 14:44
Аватар для ined
ined ined вне форума
Начинающий
 
Регистрация: 16.11.2008
Адрес: Российская Федерация!! :)
Сообщения: 164
Версия Delphi: Delphi 2010
Репутация: 1272
По умолчанию Пример многопоточного приложения

Ребята тут сделал примерчик. Можете что нибудь по нему сказать.
Как бы всё правильно или нет?
Если нет то где исправить?
M.zip
Пример сделан на Delphi Xe2
__________________
11011111 INED Home code
VK

Последний раз редактировалось ined, 05.07.2012 в 15:25.
Ответить с цитированием
  #2  
Старый 05.07.2012, 15:03
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Санкт-Петербург
Сообщения: 2,895
Репутация: выкл
По умолчанию

Не у всех XE2 есть
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #3  
Старый 05.07.2012, 15:09
Аватар для ined
ined ined вне форума
Начинающий
 
Регистрация: 16.11.2008
Адрес: Российская Федерация!! :)
Сообщения: 164
Версия Delphi: Delphi 2010
Репутация: 1272
По умолчанию

Много поточность только Xe2 реализует?
__________________
11011111 INED Home code
VK
Ответить с цитированием
  #4  
Старый 05.07.2012, 15:16
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,503
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Ну еще визуалстудия.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #5  
Старый 05.07.2012, 15:21
Аватар для ined
ined ined вне форума
Начинающий
 
Регистрация: 16.11.2008
Адрес: Российская Федерация!! :)
Сообщения: 164
Версия Delphi: Delphi 2010
Репутация: 1272
По умолчанию

Вот для Delphi 7
D7.zip
__________________
11011111 INED Home code
VK
Ответить с цитированием
  #6  
Старый 05.07.2012, 17:08
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Санкт-Петербург
Сообщения: 2,895
Репутация: выкл
По умолчанию

Цитата:
Сообщение от ined
Много поточность только Xe2 реализует?
не комилится в простой XE, а сидеть и чистить кучу кода мне некогда.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #7  
Старый 05.07.2012, 17:13
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Санкт-Петербург
Сообщения: 2,895
Репутация: выкл
По умолчанию

Цитата:
Сообщение от ined
Вот для Delphi 7

Ну так-то да, программа многопоточная, только нельзя из потока обращаться к VCL компонентам. Вот это ты похоже, что не читал:
Код:
{
  Important: Methods and properties of objects in visual components can only be
  used in a method called using Synchronize, for example,

      Synchronize(UpdateCaption);

  and UpdateCaption could look like,

    procedure qweqwe.UpdateCaption;
    begin
      Form1.Caption := 'Updated in a thread';
    end;

    or

    Synchronize(
      procedure
      begin
        Form1.Caption := 'Updated in thread via an anonymous method'
      end
      )
    );

  where an anonymous method is passed.

  Similarly, the developer can call the Queue method with similar parameters as
  above, instead passing another TThread class as the first parameter, putting
  the calling thread in a queue with the other thread.

}
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #8  
Старый 05.07.2012, 17:16
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

из потока ещё sendmessage можно передавать в форму что надо
Ответить с цитированием
  #9  
Старый 05.07.2012, 17:50
stanilar stanilar вне форума
Прохожий
 
Регистрация: 31.08.2009
Сообщения: 30
Репутация: 140
По умолчанию

Вот такое читали : http://forum.vingrad.ru/topic-60076.html ?
Ответить с цитированием
  #10  
Старый 05.07.2012, 19:47
Аватар для ined
ined ined вне форума
Начинающий
 
Регистрация: 16.11.2008
Адрес: Российская Федерация!! :)
Сообщения: 164
Версия Delphi: Delphi 2010
Репутация: 1272
По умолчанию

Цитата:
Сообщение от Aristarh Dark
Ну так-то да, программа многопоточная, только нельзя из потока обращаться к VCL компонентам. Вот это ты похоже, что не читал:
Код:
{
  Important: Methods and properties of objects in visual components can only be
  used in a method called using Synchronize, for example,

      Synchronize(UpdateCaption);

  and UpdateCaption could look like,

    procedure qweqwe.UpdateCaption;
    begin
      Form1.Caption := 'Updated in a thread';
    end;

    or

    Synchronize(
      procedure
      begin
        Form1.Caption := 'Updated in thread via an anonymous method'
      end
      )
    );

  where an anonymous method is passed.

  Similarly, the developer can call the Queue method with similar parameters as
  above, instead passing another TThread class as the first parameter, putting
  the calling thread in a queue with the other thread.

}
Мне не надо подключать TThread он очень сильно раздувает программу. Просто я рассчитывал применить его в написание программы на чистом WinApi.
__________________
11011111 INED Home code
VK
Ответить с цитированием
  #11  
Старый 05.07.2012, 19:59
Аватар для ined
ined ined вне форума
Начинающий
 
Регистрация: 16.11.2008
Адрес: Российская Федерация!! :)
Сообщения: 164
Версия Delphi: Delphi 2010
Репутация: 1272
По умолчанию

При отладке иногда выскакивает ошибка
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EInvalidOperation with message 'Canvas does not allow drawing'.
---------------------------
Что это значит.
Я добавил Try -
Код:
procedure Execute2;
 var
 I, Total, Avg: integer;
 begin
 randomize;
 while Bool2 do
 Begin
 try
 form1.Canvas.Pen.Color:=random($00ffffff);
 form1.Canvas.Pen.Width:=random(5);
 Form1.Canvas.MoveTo(random(Form1.Width),random(Form1.Height));
 Form1.Canvas.LineTo(random(Form1.Width),random(Form1.Height));
 except
   // Что сюда надо прописать?
 end;
 sleep(10);
 End;
 EndThread(0);
end;
__________________
11011111 INED Home code
VK
Ответить с цитированием
  #12  
Старый 05.07.2012, 21:45
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Санкт-Петербург
Сообщения: 2,895
Репутация: выкл
По умолчанию

Цитата:
Что это значит.
А я ведь не просто привел комментарий который вставляет IDE, ох не просто...
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #13  
Старый 05.07.2012, 22:09
Аватар для ined
ined ined вне форума
Начинающий
 
Регистрация: 16.11.2008
Адрес: Российская Федерация!! :)
Сообщения: 164
Версия Delphi: Delphi 2010
Репутация: 1272
По умолчанию

Цитата:
Сообщение от Aristarh Dark
А я ведь не просто привел комментарий который вставляет IDE, ох не просто...
Я в английском не бум бум я не понимаю что там написано.
Если не трудно сделай пожалуйста, так как надо.
__________________
11011111 INED Home code
VK
Ответить с цитированием
  #14  
Старый 05.07.2012, 22:12
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Онлайн перевод здесь или здесь.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #15  
Старый 06.07.2012, 00:51
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,238
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Цитата:
Сообщение от angvelem
Онлайн перевод здесь или здесь.
Ещё вот здесь.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:08.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2019

ВКонтакте   Facebook   Twitter