Поиск:

Ответ в темуСоздание новой темы Создание опроса
> создание 2-го потока 
V
    Опции темы
kiler4747
  Дата 27.8.2011, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 28.2.2011

Репутация: нет
Всего: нет



У меня не получается создать 2-й поток. Программа выдает ошибку: Деактивируемый контекст активации не является последним активированным контекстом.
А если не выходить из 2-го потока то программа виснет. Мне нужно чтобы программа(sdi) при запуске создала 2-й поток и выполнила в нем функцию.

функция

Код

UINT __cdecl StartWithWindows( LPVOID paramm )
{
    wchar_t str[260];
    CArray<Project *> Stakc;
    GetCurrentDirectoryW(260, str);
    CString str1 = str;
    try
    {
        CFile file(str1 + L"\\" + L"temp.syn", CFile::modeRead);
        CArchive ar(&file, CArchive::load);
        try
        {
            Stakc.SetSize( ar.ReadCount() );
            for (int i = 0; i < Stakc.GetSize(); i++)
            {    
                Stakc[i] = new Project();
                Stakc[i]->Serialize(ar);
            }
            ar.Close();
            file.Close();
        }
        catch(...)
        {
            ar.Close();
            file.Close();
        }
    }
    catch(...) {}
    for (int i = 0; i < Stakc.GetCount(); i++)
    {
        if (Stakc[i]->AutoStartWithWindows)
            Stakc[i]->Run();
    }
    /*ExitThread(1);*/
    return 1;
}



создание 2-го потока
Код


int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
...
CWinThread * thread1 = AfxBeginThread(StartWithWindows, NULL);
    thread1->Run();
return 0;
}


PM MAIL Skype   Вверх
Dem_max
Дата 28.8.2011, 05:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 1
Всего: 39



может стоить компилить с ключом
Только одно, Опции проекта -> C/C++ -> Code Generation -> /MT или /MTd
С/C++ > Code Generation > Runtime library > Multi-threaded


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0427 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.