C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 337 - Передача указателя на объект в процесс / MFC шаг за шагом / Visual C++

Шаг 337 - Передача указателя на объект в процесс

MFC позволяет нам создавать процессы. Но кроме того мы может передать в процесс и указатель на объект, с которым этот процесс будет работать. Давайте пробовать. Создаем приложение MFC AppWizard на базе диалогового окна с именем TestThread, помещаем на окно кнопку и элемент управления список.

337.gif (7964 b)

Элемент управления список связываем с переменной типа CListBox используя Classwizard.

......
class CTestThreadDlg : public CDialog
{
// Construction
public:
	CTestThreadDlg(CWnd* pParent = NULL);	// standard constructor

// Dialog Data
	//{{AFX_DATA(CTestThreadDlg)
	enum { IDD = IDD_TESTTHREAD_DIALOG };
	CListBox m_List;
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTU
......

И пишем код к кнопке создавая поток:

UINT Threads(LPVOID pParam)
{
	CListBox *cb=(CListBox*) pParam;
	for (int x=1;x<10000;x++)
	{
		cb->AddString("Hello");
	}
	AfxMessageBox("Thread");
	return 0;
}

void CTestThreadDlg::OnStart() 
{
	// TODO: Add your control notification handler code here
	AfxBeginThread(Threads,&m_List);
	AfxMessageBox("Ok");
}

Заполнение списка будет производиться из другого потока. Мы передаем через параметры адрес переменной AfxBeginThread(Threads,&m_List); при запуске потока, а потом восстанавливаем ее в потоке CListBox *cb=(CListBox*) pParam;, так как передали через указатель без типа. Запускайте. Сначала Вы получите сообщение OK, а только через некоторое время, когда поток быдет выполнен, Thread.


| |
Автор Каев Артем.
[AD]