Форум: "Система";
Текущий архив: 2002.07.22;
Скачать: [xml.tar.bz2];
ВнизПро ПОТОКИ !!! Найти похожие ветки
← →
belobadgo (2002-04-30 15:23) [0]Здравствуйте МАСТЕРА! Есть проблемма: пытаюсь создать поток, но
получаю ошибку : "...raised exception class EAccessViolation with message "Access violation at adress 0041B318 in ... Write of address "0000000E""
Вот так я описываю поток:
unit ScanThread;
interface
uses
Classes;
type
TScanThread = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
end;
implementation
{ TScanThread }
procedure TScanThread.Execute;
begin
{ Здесь мой код }
end;
end.
Вот так я создаю экземпляр:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,scanthread, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
scan : TScanThread;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Scan.Create(false);
end;
end.
Ошибку при создании потока позже я обошел: объявление потока делаю не в public a внутри процедуры из которой создается поток. Но тогда возникает ошибка такого же рода при закрытии программы...
В чем я лопухнулся, чего я не вижу ? Помогите пожалуйста !!!
← →
Vovchik (2002-04-30 15:47) [1]Ты серъёзно спрашиваешь или шутишь?..
Как можно делать Scan.Create(false), когда у тебя ещё не создан объект??????????????????????????????????
Надо так:
scan:=TScanThread.Create(false);
scan.Resume;
и т.д.
← →
Vovchik (2002-04-30 15:50) [2]Совсем забыл:
Не ПОТОК, а НИТЬ!!! Не надо использовать попсовую терминологию.
← →
belobadgo (2002-04-30 16:04) [3]To Vovchik: Спасибо ОГРОМНОЕ!!! Признаю - в ООП я полный "0". Кстати "попсовую" терминалогию беру из "Delphi 5 " - Дарахвелидзе, где сказано что НИТЬ и ПОТОК понятия одинаковые.
← →
Vovchik (2002-04-30 16:07) [4]>belobadgo © (30.04.02 16:04)
Нить - это Thread. А поток - это может быть и Stream. И как их отличать тогда в русской терминологии?
← →
belobadgo (2002-04-30 16:13) [5]To Vovchik: Все. Усёк. Сам не додумался. Еще раз спасибо.
← →
panov (2002-04-30 17:47) [6]Vovchik © (30.04.02 16:07)
Нить и поток - абсолютно равнозначные термины.
Если желаете, дискуссию на эту тему можно перенести в "Потрепаться"
← →
Vovchik (2002-04-30 17:58) [7]>panov © (30.04.02 17:47)
Г-н модератор, дискутировать я предпочитаю со знающими людьми.
А если бы нить и поток были бы равнозначны, то в англоязычной терминологии не использовалось бы слово "thread", а использовалось бы "stream". Зачем другое слово, если уже и так есть термин?
← →
vuk (2002-04-30 18:39) [8]Создаем нить и получаем многопоточное приложение.
Так какой термин устоявшийся? :o)
← →
panov (2002-04-30 19:37) [9]>Vovchik © (30.04.02 17:58)
Не надо думать, что Вы истина в последней инстанции. Почитайте литературу.
← →
Vovchik (2002-04-30 22:10) [10]>Создаем нить и получаем многопоточное приложение.
Не "многопоточное", а "многониточное".
> Не надо думать, что Вы истина в последней инстанции. Почитайте литературу.
Там не написано, кто истина. Кроме того, всё же слово "thread " иначе как "нить" перевести нельзя. Кто-то малограмотный перевёл его "поток" и все за ним повторять стали. А терминологию эту всё же англоязычные люди пидумывали.
← →
vuk (2002-05-01 01:27) [11]to Vovchik:
>Кто-то малограмотный перевёл его "поток" и все за ним повторять
>стали. А терминологию эту всё же англоязычные люди пидумывали.
В русскоязычной литературе применяется понятие потоков как потоков управления (исполнения), что кстати на мой взгляд, для русского языка более естественно, чем "нить". Эта терминология сформировалась достаточно давно и, я так думаю, не имеет отношения к переводу слова thread. Потому как если бы имела, то терминология была бы сейчас несколько иной, ведь как Вы совершенно верно заметили, другого перевода у thread нет. А в данном случае налицо просто небольшой конфликт двух схожих (в русском языке) терминов, которые сформировались абсолютно самостоятельно. И пусть они лучше живут оба, чем в очередной раз начинать обезьяньичать и употреблять кальки с английских терминов.
← →
Vovchik (2002-05-01 02:01) [12]> vuk © (01.05.02 01:27)
В каком-то смысле это правильно. Но с другой стороны во многих областях деятельности наличествует по разному сформированная терминология (например, в рентгенофотоэлектронной спектроскопии), что приводит к путанице. Поэтому лучше отбросить любую из двух терминологий и принять одну, чем наращивать этот комок.
Кроме того, нить может быть создана, но не выполняться. Тогда слово "поток" становится совсем не к месту.
← →
Suntechnic (2002-05-01 06:59) [13]>Vovchik © (01.05.02 02:01)
Не мы эту термниналогию вводили в обращение и не нам её отменять. А на вашем месте я бы поосторожнее кидался словами типа "малограмотные люди" и определять кто тут "знающие люди" и начинать с ними дискутировать. Вам совершенно правильно указали, что "нить" и "поток" в том контексте, что вы их употребляете в этой ветке, абсолютно одинаковые понятия.
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2002.07.22;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.006 c