Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.08.28;
Скачать: [xml.tar.bz2];

Вниз

redlord   Найти похожие ветки 

 
redlord   (2005-08-07 03:27) [0]

всем привет
народ нужен совет
в проге работают одновременно несколько потоков они собирают разного рода инфу с датчиков и кидают ее в общий для всех
потоков stringlist
в етоже время основной поток проги выбирает ету инфу
while stringlist.count>0 do
s:=stringlist[0];stringlist.delete(0);

и весе бы ничего но уж очень медленно  происходит выборка (удаление  нулевой записи приводит к пересортировке всех строк stringlist)
собираюсь stringlist заменить на  memorystream
но возможноли в нем организовать подобный алгоритм работы когда вытащенная из него инфа автоматически удаляется ?
и приведет ли ето к увеличению скорости работы ?


 
Джо ©   (2005-08-07 03:39) [1]

Интересная тема сообщения... Даже отвечать не хочется, все равно - тему удалят.


 
jack128 ©   (2005-08-07 03:45) [2]

используй не стриг лист, а список.

type
 PStringData = ^TStringData;
 TStringData = record
   s: string;
   Next: PStringData;
 end;

var
 StartItem, EndItem: PStringData;

procedure AddToList(const: string);
var
 p: PStringData;
begin
 New(p);
 p.s := s;
 p.Next := nil;
 if not Assigned(StartItem) then
   StartItem := p;
 if Assigned(EndItem) then
   EndItem.Next := p;
 EndItem := p;      
end;

procedure RemoveFirstItem;
var
 p: PStringData;
begin
 p := StartItem;
 if not Assigned(p) then Exit;
 StartItem := p.Next;
 Dispose(p);
end;

procedure ClearAll;
begin
 while Assigned(StartItem) do
   RemoveFirstItem;
end;


 
Джо ©   (2005-08-07 03:50) [3]

Однако, очень это все будет красиво выглядеть при доступе из разных потоков...


 
Юрий Зотов ©   (2005-08-07 03:53) [4]

TThreadList.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.08.28;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.036 c
1-1123329885
Толян
2005-08-06 16:04
2005.08.28
Копирование программы


4-1120744413
chili
2005-07-07 17:53
2005.08.28
Kак узнать об изменении обоев на рабочем столе?


6-1116237803
BanderLog
2005-05-16 14:03
2005.08.28
TIdTCPServer - обрыв связи


1-1123645325
Гриха
2005-08-10 07:42
2005.08.28
Фоновый рисунок рабочего стола


1-1123158812
Radgar
2005-08-04 16:33
2005.08.28
Имя TImage a





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский