Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2014, 17:43   #1
Vadik(R)
Пользователь
 
Регистрация: 10.03.2008
Сообщений: 68
Вопрос Многопоточность WinAPI, TStringList, Access Violation

Решил сделать для себя тестовое многопоточное приложение в Delphi 7, да столкнулся с проблемой Access Violation, если в потоках есть TStringList и ему необходимо чуток памяти.

Вот код:
Код:
{$MAXSTACKSIZE $0E000000}
 
program MultiThreads;
 
{$APPTYPE CONSOLE}
 
uses
  Classes, SysUtils, Windows;
 
var
  i: Integer;
  ThreadId: Cardinal;
  Threads: Array [1..100] of THandle;
 
function MyThread(param: Pointer): Cardinal; stdcall;
var
  Content: TStringList;
  i: Integer;
begin
  Content := TStringList.Create;
  for i := 1 to 10000 do
  Content.Add('asdxcvajdaslkdjlasjdlkasjdlkasjdlkasjdljsaldjaslkdj');
  Content.Free;
  MyThread := 0;
end;
 
begin
  for i := 1 to 5 do
  begin
    Threads[i] := CreateThread(nil, 10240000, @MyThread, nil, 0, ThreadId);
  end;
  WaitForMultipleObjects(5, @Threads, True, INFINITE);
  for i := 1 to 5 do
  begin
    CloseHandle(Threads[i]);
  end;
end.
Пытался поиграться со вторым параметром при создании потока (изначально был 0, поставил в 10240000) и решил установить
{$MAXSTACKSIZE $0E000000} в надежде, что как-то поможет, но это никак не помогло, Access Violation всё равно появляется. Скажите, в чём может быть дело?
Vadik(R) вне форума Ответить с цитированием
Старый 12.01.2014, 18:12   #2
Vadik(R)
Пользователь
 
Регистрация: 10.03.2008
Сообщений: 68
По умолчанию

Нагуглил, стоить написать:
Код:
IsMultiThread := True;
Может кому пригодится
Vadik(R) вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Access violation Vanta11a C++ Builder 4 12.04.2013 18:14
Access violation dimavit Общие вопросы Delphi 3 29.07.2012 19:16
VB Access и многопоточность rus.nick Microsoft Office Access 1 15.03.2011 23:29
Access Violation SunKnight Общие вопросы Delphi 2 05.06.2008 16:46
Access Violation Carbon Общие вопросы Delphi 12 18.09.2007 19:55