crossplatform.ru

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

Alexander
  опции профиля:
сообщение 21.10.2012, 16:41
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 21.10.2012
Пользователь №: 3573

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




Репутация:   0  


Всем доброго времени суток) Писал приложение

mainwindow.cpp
void MainWindow::forther()
{
 for (int i=0;i<500;i++) 
    {
        MainWindow::setWindowTitle(QString::number(i)); 
    }
}

void MainWindow::on_pushButton_clicked()
{
    QtConcurrent::run(this, &MainWindow::forther);
}


mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT
public:
    void forther();
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
private slots:

    void on_pushButton_clicked();
private:

    Ui::MainWindow *ui;
public slots:

signals:

};
#endif // MAINWINDOW_H


При нажатии на кнопку программа выдает ошибку "This Application Has Requested The Runtime To Terminate It In An Unusual Way "
Помогите проблему, заранее спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Alexander
  опции профиля:
сообщение 21.10.2012, 17:48
Сообщение #2


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 21.10.2012
Пользователь №: 3573

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




Репутация:   0  


Цитата
объясни эту запись, я её не понимаю.

т.к. forther работает с элементами формы,то я не могу ее сделать как static. в гугле нашел такой вроде рабочий пример для вызова

Цитата
ещё - по описанию функции первым параметром должен стоять указатель на функцию (из чего ещё следует, что функция должа быть статическая)

далее список параметров не описан в доке - думаю, туда первым можно засунуть указатель на контекст, как это стандартно для поточных функций и делается

если я правильно понял, то конструкция
QtConcurrent::run(&MainWindow::forther, this);

выдает ошибку
no matching function for call to 'run(void (MainWindow::*)(), MainWindow* const)'

Цитата
во-первых - налицо отсутсвие синхронизации потоков

я просто думал при нажатии кнопки создать поток, что-то там обработать и его завершить, или надо с самого начала создавать 2 потока?


Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 5.6.2025, 14:37