Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 10.01.2012, 12:24   #1
Авторитет
Пользователь
 
Регистрация: 08.04.2010
Сообщений: 74
По умолчанию Перенести код потоков с CLR на WIN32

Приветствую.
Есть код на CLR Console создающий два потока:

Код:
#include "stdafx.h";
using namespace System;
using namespace System::Threading;

namespace SystemThreadingExample
{
    public ref class Work
    {
    public:
        void StartThreads()
        {
			Thread^ th_a = gcnew Thread( gcnew ParameterizedThreadStart ( Work::ThreadMethod ) );
			Thread^ th_b = gcnew Thread( gcnew ParameterizedThreadStart ( Work::ThreadMethod ) );

            th_a->Start("a");
            th_b->Start("b");
             th_a->Join(); 
             th_b->Join();
        }

        static void ThreadMethod(Object^ data)
        {
            Console::WriteLine("Выполняется ПОТОК {0}", data);
			
			for(int i = 0; i<10; i++)
			{
				Console::Write(".");
				Thread::Sleep( 150 );
			}
        }
    };
}

int main()
{
    SystemThreadingExample::Work^ samplework = gcnew SystemThreadingExample::Work();
    samplework->StartThreads();

	Console::ReadLine();
}
Помогите перенести его на Win32 console используя встроенные средства Handle и CreateThread из WINAPI
Авторитет вне форума
Старый 10.01.2012, 23:41   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

чё-то типа того...

Код:
unsigned __stdcall thread_proc(void*)
{
	std::cout << "Я тут, насяльника! " << GetCurrentThreadId() << std::endl;
	return 0;
}

int run_threads()
{
	std::vector<HANDLE> v;

	v.push_back((HANDLE) _beginthreadex(nullptr, 0, &thread_proc, nullptr, 0, nullptr));
	v.push_back((HANDLE) _beginthreadex(nullptr, 0, &thread_proc, nullptr, 0, nullptr));

	WaitForMultipleObjects(v.size(), &v[0], TRUE, INFINITE);

	return 0;
}
Rififi вне форума
Старый 11.01.2012, 00:00   #3
Авторитет
Пользователь
 
Регистрация: 08.04.2010
Сообщений: 74
По умолчанию

Большое спасибо!

К слову читающим: следует добавить библиотеки
#include "stdafx.h";
#include <windows.h>;
#include <vector>;
#include <process.h>;
#include <iostream>;
Авторитет вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CLR и стандартные библиотеки win32 kolob2000 Общие вопросы .NET 1 08.01.2011 15:29
win32 API.Visual Studio 2008.Создание проекта Win32 Aleksandr_Yanov Visual C++ 2 12.09.2010 13:09
Код по закрытию формы + закрытие потоков boris-blade Общие вопросы .NET 2 31.03.2010 12:53
Перенести код из C++ Builder 5 в C++ Builder 2009 Kreadlling C++ Builder 2 13.09.2009 14:00
HLLW.Shadow.based / Net-Worm.Win32.Kido / Win32.Conficker / W32.Downadup Pirotexnik Безопасность, Шифрование 13 27.03.2009 14:02