|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Пример многопоточного приложения
Ребята тут сделал примерчик. Можете что нибудь по нему сказать.
Как бы всё правильно или нет? Если нет то где исправить? M.zip Пример сделан на Delphi Xe2 11011111 INED Home code VK Последний раз редактировалось ined, 05.07.2012 в 15:25. |
#2
|
||||
|
||||
Не у всех XE2 есть
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#4
|
||||
|
||||
Ну еще визуалстудия.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#6
|
||||
|
||||
Цитата:
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#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
|
|||
|
|||
из потока ещё sendmessage можно передавать в форму что надо
|
#9
|
|||
|
|||
Вот такое читали : http://forum.vingrad.ru/topic-60076.html ?
|
#10
|
||||
|
||||
Цитата:
11011111 INED Home code VK |
#11
|
||||
|
||||
При отладке иногда выскакивает ошибка
--------------------------- 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
|
||||
|
||||
Цитата:
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#13
|
||||
|
||||
Цитата:
Если не трудно сделай пожалуйста, так как надо. 11011111 INED Home code VK |
#15
|
||||
|
||||
Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |