crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Ошибка из потока
ruzik
  опции профиля:
сообщение 26.7.2011, 20:36
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 254
Регистрация: 23.2.2011
Из: Саратов
Пользователь №: 2436

Спасибо сказали: 2 раз(а)




Репутация:   0  


Здравствуйте, я хотел для своего редактора qss сделать небольшой поиск ошибок, но тк он выполнялся достаточно долго при больших документов, я запихнул его в поток, вроде все ок, все работает, но если попытаться выйти из программы, то выдает ошибку:
Цитата
Необработанное исключение в "0x651ed4d5" в "RizekQssEditor.exe": 0xC0000005: Нарушение прав доступа при чтении "0x01926158".

Я понимаю поток пытается обратиться к данным, которых уже нет, и я пытался это исправить:
поставил обработку исключений в место создания потока и некоторых начальных манипуляций с ним - не помогло
поставил обработку исключений в сам поток, в функции манипуляции с теми самими объектами - не помогло
поставил завершение процесса и в деструктор QDockWidgetа в котором содержится этот поток и в главный класс - не могло
Вот как примерно выглядит класс QDockWidget из которого и вызывается поток
#include "searchMistakes.h"
#include "QString"
#include "searchMistakeThread/searchMistakeThread.h"
#include "rizekqsseditor.h"

#include "QDebug"

searchMistakes::searchMistakes(QWidget *parent, Qt::WFlags flags)
: QDockWidget(parent, flags)
{
    thread = new searchMistakesThread;
}

searchMistakes::~searchMistakes()
{
    thread->quit();
}
void searchMistakes::findMistakes()
{
    try
    {
        thread->quit();
        thread->setObjects(plainTextEdit,listWidget,rqe->getOutputWindow());
        thread->setKindOfSearch(2);
        thread->start();
        connect(thread, SIGNAL(finished()), thread, SLOT(quit()));
    }
    catch(...)
    {
        qDebug() << "Error";
    }
}

Заранее спасибо за помощь!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
ruzik
  опции профиля:
сообщение 26.7.2011, 22:31
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 254
Регистрация: 23.2.2011
Из: Саратов
Пользователь №: 2436

Спасибо сказали: 2 раз(а)




Репутация:   0  


Знал бы как, посмотрел бы :)
Не подскажите как это можно сделать в VS 2008

Нашел как, зашел в debug, при запуске ошибка
http://hostingkartinok.com/image/01201107/...d812a4f4929.png
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 14.1.2025, 19:05