Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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
1-70809
Dinara
2002-07-10 15:28
2002.07.22
Как узнать, выделен ли какой-нибудь итем в ListView?


1-70802
dlK
2002-07-09 11:36
2002.07.22
Процесс сервиса занимает 99% процессорног времени.


1-70759
Alex
2002-07-09 17:26
2002.07.22
TListView


1-70675
Maxuz
2002-07-09 01:26
2002.07.22
StatusBar


1-70788
EugenCFG
2002-07-10 10:46
2002.07.22
Здраствуйте ещё раз...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский