Потоки?
| |
ETUN4 | Дата: Суббота, 21 Сентября 2013, 20:14 | Сообщение # 21 |
частый гость
Сейчас нет на сайте
| Если нужен пример с реализацией потоков, пиши. Только если ты работаешь в визуал С++ .
|
|
| |
Deswing | Дата: Суббота, 21 Сентября 2013, 20:16 | Сообщение # 22 |
заслуженный участник
Сейчас нет на сайте
| Izaron, а что нужно сделать, чтобы потоки работали попеременно?
|
|
| |
GameMix | Дата: Суббота, 21 Сентября 2013, 20:17 | Сообщение # 23 |
старожил
Сейчас нет на сайте
| Цитата (Izaron) Это че, билдер? *слоу* Смотрю, не одного человека здесь зацепил Builder... 1) ТС не сказал, какую среду использует для решения задачи; 2) Если такое решение у вас вызывает фэйспалм, то объясните подробнее, почему?
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
Deswing | Дата: Суббота, 21 Сентября 2013, 20:21 | Сообщение # 24 |
заслуженный участник
Сейчас нет на сайте
| GameMix, я использую VS. Против Билдера ничего не имею, но предпочитаю использовать visual studio
|
|
| |
Izaron | Дата: Суббота, 21 Сентября 2013, 20:23 | Сообщение # 25 |
Rammstein forever
Сейчас нет на сайте
| Цитата (GameMix) 2) Если такое решение у вас вызывает фэйспалм, то объясните подробнее, почему? Да блин, второй человек уже сегодня пристает, считаю ли я говном его любимый ЯП или компилятор, отвечаю - нет, не говно, и фейспалм не вызывает, и вообще мне пофигу, кто чем пользуется Никогда не был технорасистом/технофашистом ("ололо, MSVS рулёз!"), тот, кто таким увлекается, просьба почитать на хабре про человека, который написал RPG на Excel
Цитата (Deswing) Izaron, а что нужно сделать, чтобы потоки работали попеременно? Ничего, так и должно быть, в любом случае какой-либо поток не будет печатать 10 цифр, когда второй печатает одну
Сообщение отредактировал Izaron - Суббота, 21 Сентября 2013, 20:23 |
|
| |
Нохчи | Дата: Суббота, 21 Сентября 2013, 20:23 | Сообщение # 26 |
заслуженный участник
Сейчас нет на сайте
| Цитата (GameMix) 2) Если такое решение у вас вызывает фэйспалм, то объясните подробнее, почему? Потому что работать будет только в Builder. Потому что Builder это анахронизм. Deswing, считай что потоки работают параллельно, хотя технически это не совсем и не всегда так. И задача двойной буферизации никак не относится к потокам. Это делается в одном единственном потоке.
Многие вопросы по Windows отпадут, если посмотреть тут
|
|
| |
Zweifx | Дата: Суббота, 21 Сентября 2013, 20:25 | Сообщение # 27 |
был не раз
Сейчас нет на сайте
| http://ru.cppreference.com/w/cpp/thread/thread/thread
/thread
Если никто не знает, это то же самое, как если бы этого не было вовсе.
|
|
| |
Deswing | Дата: Суббота, 21 Сентября 2013, 20:43 | Сообщение # 28 |
заслуженный участник
Сейчас нет на сайте
| Нохчи, значит я что-то неправильно понял??? Цитата Двойная буферизация — в информатике метод подготовки данных, обеспечивающий возможность отдачи готового результата, без прерывания процесса подготовки следующего результата. Из прочитанного я сделал для себя вывод, что в моей игре один поток будет делать расчеты (генерировать карту, перемещения объектов и т.п.), а второй - выводить... Как же тогда делается двойная буферизация? Добавлено (21.09.2013, 20:43) --------------------------------------------- //кстати, а если я в ф-ции не поставлю _endthread, то получится бесконечный цикл? т.е. тело ф-ции будет выполняться вплоть до завершения программы??
|
|
| |
Izaron | Дата: Суббота, 21 Сентября 2013, 20:44 | Сообщение # 29 |
Rammstein forever
Сейчас нет на сайте
| Цитата (Deswing) Из прочитанного я сделал для себя вывод, что в моей игре один поток будет делать расчеты (генерировать карту, перемещения объектов и т.п.), а второй - выводить... Как же тогда делается двойная буферизация? Тьфу, блин, а зачем тебе 2 потока на то, что можно в 1 поток? Вычисляешь - выводишь - вычисляешь - выводишь, как у HackTrucach Если без потоков не обойтись (чятик, например), то их надо использовать, иначе - не надо, еще понаделаешь фигни
|
|
| |
Zweifx | Дата: Суббота, 21 Сентября 2013, 20:45 | Сообщение # 30 |
был не раз
Сейчас нет на сайте
| >двойная буферизация Ты там на GDI пишешь или в консоли?
Если никто не знает, это то же самое, как если бы этого не было вовсе.
|
|
| |
Deswing | Дата: Суббота, 21 Сентября 2013, 20:47 | Сообщение # 31 |
заслуженный участник
Сейчас нет на сайте
| Zweifx, консоль Izaron, приблизительно так же у меня работает прога без всяких там потоков... Но при каких-либо передвижениях элемента в массиве и обновлениях весь экран блымает, что очень раздражает. И тут же я вычитал, что выход есть - "двойная буферизация"...
|
|
| |
GameMix | Дата: Суббота, 21 Сентября 2013, 20:48 | Сообщение # 32 |
старожил
Сейчас нет на сайте
| Цитата (Izaron) Да блин, второй человек уже сегодня пристает, считаю ли я говном его любимый ЯП или компилятор, отвечаю - нет, не говно, и фейспалм не вызывает, и вообще мне пофигу, кто чем пользуется Никто к тебе не пристаёт. Я нигде не орал: "Builder Forever!", поэтому глупо с твоей стороны утверждать, что это "мой любимый компилятор". А Нохчи спасибо за ответ, теперь ясно всё
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
Izaron | Дата: Суббота, 21 Сентября 2013, 20:56 | Сообщение # 33 |
Rammstein forever
Сейчас нет на сайте
| Цитата (GameMix) Никто к тебе не пристаёт. Я нигде не орал: "Builder Forever!", поэтому глупо с твоей стороны утверждать, что это "мой любимый компилятор". И я нигде не орал, что Builder это плохо, и тоже глупо было с твоей стороны спрашивать, почему билдер вызывает у меня фейспалм, и вызывает ли вообще
|
|
| |
Deswing | Дата: Суббота, 21 Сентября 2013, 21:04 | Сообщение # 34 |
заслуженный участник
Сейчас нет на сайте
| возникла больная идея создать второй массив карты, который будет дублировать первый. Т.е. первый отрисовался, второй изменился и превратился в первый... но я такой подход считаю извращенством и лищними тратами ресурсов компьютера
|
|
| |
Нохчи | Дата: Суббота, 21 Сентября 2013, 21:41 | Сообщение # 35 |
заслуженный участник
Сейчас нет на сайте
| Deswing, для начала просто попробуй выводить через WriteConsole.
Добавлено (21.09.2013, 21:41) --------------------------------------------- По крайней мере у меня вот такой код Код char buffer[80*4]; FillMemory(buffer, 80*4, 'A'); HANDLE out = GetStdHandle(STD_OUTPUT_HANDLE); COORD coord; coord.X = 0; coord.Y = 0; for(int i = 0; i<80*4; i++) { buffer[i] = 'B'; SetConsoleCursorPosition(out,coord); WriteConsoleA(out, buffer, 80*4,0,0); Sleep(10); } system("pause");
Работает без всяких мерцаний.
Многие вопросы по Windows отпадут, если посмотреть тут
Сообщение отредактировал Нохчи - Суббота, 21 Сентября 2013, 21:41 |
|
| |
Apati | Дата: Суббота, 21 Сентября 2013, 21:47 | Сообщение # 36 |
заслуженный участник
Сейчас нет на сайте
| Deswing, я тебе уже давал ответ по поводу мерцания консоли в этой теме http://gcup.ru/forum/1-32294-1
|
|
| |
|