Форум программистов, компьютерный форум CyberForum.ru

Потоки. Основа. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Небольшая ассемблеровская вставка http://www.cyberforum.ru/cpp-beginners/thread516311.html
Доброго вечера. Данный код создает одномерный массив. int main() { int n=4; int *a = new int ; for(int i=0;i<n;i++){ cin>>a; } return 0;
C++ Ошибка: forbids declaration of 'magic' with no type expected ';' before '.' token пишет "forbids declaration of 'magic' with no type expected ';' before '.' token" не могу найти где ? #include <iostream> #include <iomanip> #include <conio.h> #include <cmath> #include <process.h> using namespace std; struct bil{ int a; float b; http://www.cyberforum.ru/cpp-beginners/thread516306.html
C++ Омега код Элиаса+работа с потоками.
Задание: Нужно создать 2 функции, одна из бинарного файла будет переводить в число Элиаса, а вторая наоборот. Я хочу считывать по байту, каким потоком мне лучше достать данные? bool toElias ( const char * srcName, const char * dstName ) { } bool toBinary ( const char * srcName, const char * dstName ) { fstream &srcName ( (const char *)path );
C++ Вывод информации о файле
Добрый день форумчане. Кто подскажет,суть задачи - вывести информацию о файле. может быть есть какие-то функции которые в этом помогут? файлы могут быть открыты произвольные.. (фильм\документ\архив\песня) , никаких ф-ций нет? подскажите пожалуйста, а подробнее думаю почитаю и разберусь:)
C++ Запись и чтение в файл http://www.cyberforum.ru/cpp-beginners/thread516295.html
Вариант 1 Написать программу, которая считывает из текстового файла три предложения и выводит их в обратном порядке. Вариант 2 Написать программу, которая считывает текст из файла и выводит на экран только предложения, содержащие введенное с клавиатуры слово. Вариант 3 Написать программу, которая считывает текст из файла и выводит на экран слова, начинающиеся с гласных букв. Помогите...
C++ Очередь Описать структуру с именем TRAIN, содержащую следующие поля: - название пункта назначения - номер поезда - время отправления Написать программу, выполняющую следующие действия: - ввод с клавиатуры данных в массив, состоящий из шести элементов типа TRAIN; записи должны быть упорядочены по времени отправления поезда; - вывод на экран информации о поездах, направляющихся в пункт, название... подробнее

Показать сообщение отдельно
Gepar
 Аватар для Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,512
11.03.2012, 20:22     Потоки. Основа.
А почему вы пользуетесь какой-то CreateThread вместо того чтобы использовать _beginthread?
Вот вам в тему заодно пример из книги Петзолда на мультипотоковость
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#include <windows.h>
#include <process.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
 
#define REP 1000000 // 100 000
 
#define STATUS_READY 0
#define STATUS_WORKING 1
#define STATUS_DONE 2
 
#define WM_CALC_DONE (WM_USER+0)
#define WM_CALC_ABORTED (WM_USER+1)
 
typedef struct
{
    HWND hwnd;
    BOOL bContinue;
} 
PARAMS, *PPARAMS;
 
LRESULT APIENTRY WndProc(HWND, UINT, WPARAM, LPARAM);
 
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE, PSTR szCmdLine, int iCmdShow)
{
    static char szAppName[]="BigJob1";
    MSG msg;
    HWND hwnd;
 
    WNDCLASSEX wndclass;
 
    ZeroMemory(&wndclass, sizeof(wndclass));
 
    wndclass.cbSize=sizeof(wndclass);
    wndclass.style=CS_HREDRAW|CS_VREDRAW;
    wndclass.lpfnWndProc=WndProc;
    wndclass.hInstance=hInstance;
    wndclass.hIcon=LoadIcon(NULL, IDI_APPLICATION);
    wndclass.hCursor=LoadCursor(NULL, IDC_ARROW);
    wndclass.hbrBackground=(HBRUSH) GetStockObject(WHITE_BRUSH);
    wndclass.lpszClassName=szAppName;
    wndclass.hIconSm=LoadIcon(NULL, IDI_APPLICATION);
    RegisterClassEx(&wndclass);
 
    hwnd=CreateWindow(szAppName, "Multithreading Demo", WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, CW_USEDEFAULT,
        CW_USEDEFAULT, CW_USEDEFAULT,
        NULL, NULL, hInstance, NULL);
    ShowWindow(hwnd, iCmdShow);
    UpdateWindow(hwnd);
 
    while(GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}
 
void Thread(PVOID pvoid)
{
    double A=1.0;
    INT i;
    LONG lTime;
    PPARAMS pparams;
 
    pparams=(PPARAMS) pvoid;
    
    lTime=GetCurrentTime();
    for(i=0;i<REP && pparams->bContinue;i++)
        A=tan(atan(exp(log(sqrt(A*A)))))+1.0;
    if(i==REP)
    {
        lTime=GetCurrentTime()-lTime;
        SendMessage(pparams->hwnd, WM_CALC_DONE, 0, lTime);
    }
    else
        SendMessage(pparams->hwnd, WM_CALC_ABORTED, 0, lTime);
    _endthread();
}
 
LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
    static char *szMessage[]={"Ready (left mous button begins)",
        "Working (right mouse button aborts)",
        "%d repetitions in %ld msec"};
    static INT iStatus;
    static LONG lTime;
    static PARAMS params;
    char szBuffer[64];
    HDC hdc;
    PAINTSTRUCT ps;
    RECT rect;
 
    switch(iMsg)
    {
    case WM_LBUTTONDOWN:
        if(iStatus==STATUS_WORKING)
        {
            MessageBeep(0);
            return 0;
        }
        iStatus=STATUS_WORKING;
 
        params.hwnd=hwnd;
        params.bContinue=TRUE;
 
        _beginthread(Thread, 0, &params);
        InvalidateRect(hwnd, NULL, TRUE);
        return 0;
 
    case WM_RBUTTONDOWN:
        params.bContinue=FALSE;
        return 0;
 
    case WM_CALC_DONE:
        lTime=lParam;
        iStatus=STATUS_DONE;
        InvalidateRect(hwnd, NULL, TRUE);
        return 0;
 
    case WM_CALC_ABORTED:
        iStatus=STATUS_READY;
        InvalidateRect(hwnd, NULL, TRUE);
        return 0;
 
    case WM_PAINT:
        hdc=BeginPaint(hwnd, &ps);
 
        GetClientRect(hwnd, &rect);
 
        wsprintf(szBuffer, szMessage[iStatus], REP, lTime);
 
        DrawText(hdc, szBuffer, -1, &rect, DT_SINGLELINE|DT_CENTER|DT_VCENTER);
        EndPaint(hwnd, &ps);
        return 0;
 
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
    }
    return DefWindowProc(hwnd, iMsg, wParam, lParam);
}
 
Текущее время: 03:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru