ПредишенСледващото

Следващият пример показва как да създадете нова тема, която изпълнява локално дефинирана функция ThreadFunc.

DWORDWINAPIThreadFunc (LPVOID lpParam)

wsprintf (szMsg "параметър =." * (DWORD *) lpParam);

MessageBox (NULL, szMsg "ThreadFunc", MB_OK);

DWORD dwThreadId, dwThrdParam = 1;

NULL, // им атрибути за сигурност по подразбиране

0, // размер на пакета използва по подразбиране

ThreadFunc. // функция резба

dwThrdParam, // аргумент резба функция

0, // създаване на флагове се използват по подразбиране

dwThreadId); // връща ID на конеца

// Ако се окаже успешна, проверете върнатата стойност.

За простота, този пример преминава указател към както стойността на функцията параметър поток. Това може да е указател към всеки тип данни или структура, или може да бъде пропуснат напълно, чрез предаване на NULL показалеца и отстраняване на препратки към параметъра ThreadFunc.

В процеси, при които потокът може да създаде множество нишки, за да изпълни част от кода, той е неудобен за използване глобални променливи. Например, един процес, който позволява на потребителя да отвори множество файлове наведнъж, можете да създадете нова тема за всеки файл, за да всеки от потока на потоци за извършване на някаква функция. Генериране на потока може да предава уникална информация (като например името на файла) се изисква за всеки отделен случай на потока като параметър на функция. Не можете да използвате една единствена глобална променлива за тази цел, но можете да използвате, за да се разпределят динамично низ буфер.

Създава поток може да използвате параметри CreateThread функция. за да се определи следното:

  • дескриптор за защита атрибути за новия конец. Тези атрибути за сигурност включват наследство флаг, който определя дали Характеристиката да бъде наследен от дете може. атрибути за сигурност да включва и описател на сигурността, който използва системата, за да бъдат достъпни, която контролира всичко последващо използване ЕВРОВОК поток преди лечение се прилага към него.
  • Първоначалният размер на стека новата нишка. Пакет на потока автоматично определен в пространството памет на процеса; системата се увеличава стека, колкото е необходимо и го изцелява когато потокът спирки. За повече информация, вижте. Стак член нишка.
  • създаване Checkbox. която ви позволява да създадете една нишка в състояние на изчакване. Когато имаше пауза, потокът не вървят, докато функцията се нарича ResumeThread.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!