Форум: Форум C++Разное
Новые темы: 00
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Потоки в консольном приложении С++
 
 автор: shevak   (20.11.2008 в 17:35)   письмо автору
 
 

Всем добрый день.

Подскажите, можно ли пользоваться потоками в обычном консольном приложении без WINAPI ?

У меня обычная программа, которая делает простые просчеты и сохраняет их. Нужно чтоб эти просчеты работали параллельно. В документациях находил что-то типа:


HANDLE CreateThread(
    PSECURITY_ATTRIBUTES psa,
    DWORD cbStack,
    PTHREAD_START_ROUTINE pfnStartAddr,
    PVOID pvParam,
    DWORD fdwCreate,
    PDWORD pdwThreadID);


Но в консоле нет никаких HANDLE

  Ответить  
 
 автор: GeorgeIV   (24.11.2008 в 10:26)   письмо автору
 
   для: shevak   (20.11.2008 в 17:35)
 

HANDLE это обычный указатель, возвращается при создании потока, используется потом при уничтожении потока.

  Ответить  
 
 автор: cheops   (29.11.2008 в 14:50)   письмо автору
 
   для: shevak   (20.11.2008 в 17:35)
 

Подключите библиотеку windows.h

  Ответить  
 
 автор: exp   (29.11.2008 в 23:24)   письмо автору
 
   для: shevak   (20.11.2008 в 17:35)
 

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main()
{
    char    buffer[128];
    FILE    *dsk;

    /* Run CHKDSK so that it writes its output to a pipe. Open pipe
     * with read text attribute so that we can read it like a text file.
     */


    if (( dsk = _popen"dir * | sort | more""rt" )) == NULL )
        exit(1);

    /* Read pipe until end of file. End of file indicates that CHKDSK
     * closed its standard out (probably meaning that it terminated).
     */

    while( !feof( dsk ) )
    {
        fgets( buffer, 128, dsk );
        printf( buffer );
    }

    /* Close pipe and print return value of CHKDSK. */
    printf"\nChild returned %d\n"_pclose( dsk ) );
    return 0;
}


Незнаю можно-ли как-нибудь приделать такое, и не пойму нити-ли это или потоки

  Ответить  
 
 автор: GeorgeIV   (30.11.2008 в 10:01)   письмо автору
 
   для: exp   (29.11.2008 в 23:24)
 

:-) Это пайпы, а нить и поток, это одно и то же.
Пайп это в принципе тот же поток, только именованный и ближе к файлам, но я с ними не работал, поэтому подробнее не скажу.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования