Многопоточность Winapi, Tstringlist, Access Violation

Тема в разделе "Delphi - FAQ", создана пользователем Vadik(R), 12 янв 2014.

  1. Vadik(R)

    Vadik(R) Well-Known Member

    Регистрация:
    12 дек 2007
    Сообщения:
    483
    Симпатии:
    0
    Здравствуйте, уважаемые форумчане!

    Давно я не посещал этот форум, но программистские проблемы всё равно появляются.

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

    Вот код:
    Код (Delphi):
    {$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 всё равно появляется. Скажите, в чём может быть дело?
     
  2. Vadik(R)

    Vadik(R) Well-Known Member

    Регистрация:
    12 дек 2007
    Сообщения:
    483
    Симпатии:
    0
    Нагуглил, стоить написать:
    Код (Delphi):
    IsMultiThread := True;
    Может кому пригодится :huh:
     
Загрузка...
Похожие Темы - Многопоточность Winapi Tstringlist
  1. 123456789igor
    Ответов:
    0
    Просмотров:
    920
  2. sanch
    Ответов:
    2
    Просмотров:
    3.066
  3. bestguru
    Ответов:
    0
    Просмотров:
    914
  4. DreamForse
    Ответов:
    0
    Просмотров:
    2.220
  5. Vadik(R)
    Ответов:
    1
    Просмотров:
    1.444

Поделиться этой страницей