Ошибка при использовании QtConcurrent |
Здравствуйте, гость ( Вход | Регистрация )
Ошибка при использовании QtConcurrent |
Alexander |
21.10.2012, 16:41
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 21.10.2012 Пользователь №: 3573 Спасибо сказали: 0 раз(а) Репутация: 0 |
Всем доброго времени суток) Писал приложение
mainwindow.cpp
mainwindow.h
При нажатии на кнопку программа выдает ошибку "This Application Has Requested The Runtime To Terminate It In An Unusual Way " Помогите проблему, заранее спасибо. |
|
|
Алексей1153 |
21.10.2012, 17:04
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
во-первых - налицо отсутсвие синхронизации потоков
ещё - по описанию функции первым параметром должен стоять указатель на функцию (из чего ещё следует, что функция должа быть статическая) далее список параметров не описан в доке - думаю, туда первым можно засунуть указатель на контекст, как это стандартно для поточных функций и делается |
|
|
Litkevich Yuriy |
21.10.2012, 17:11
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Alexander |
21.10.2012, 17:48
Сообщение
#4
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 21.10.2012 Пользователь №: 3573 Спасибо сказали: 0 раз(а) Репутация: 0 |
Цитата объясни эту запись, я её не понимаю. т.к. forther работает с элементами формы,то я не могу ее сделать как static. в гугле нашел такой вроде рабочий пример для вызова Цитата ещё - по описанию функции первым параметром должен стоять указатель на функцию (из чего ещё следует, что функция должа быть статическая) далее список параметров не описан в доке - думаю, туда первым можно засунуть указатель на контекст, как это стандартно для поточных функций и делается если я правильно понял, то конструкция
выдает ошибку no matching function for call to 'run(void (MainWindow::*)(), MainWindow* const)' Цитата во-первых - налицо отсутсвие синхронизации потоков я просто думал при нажатии кнопки создать поток, что-то там обработать и его завершить, или надо с самого начала создавать 2 потока? |
|
|
Алексей1153 |
21.10.2012, 17:54
Сообщение
#5
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
т.к. forther работает с элементами формы,то я не могу ее сделать как static. в гугле нашел такой вроде рабочий пример для вызова
и тогда перестанет ругаться Цитата no matching function for call to 'run(void (MainWindow::*)(), MainWindow* const)' я просто думал при нажатии кнопки создать поток, что-то там обработать и его завершить, или надо с самого начала создавать 2 потока? про синхронизацию это я на всякий случай отметил, в данном случае дело не в ней. Хотя работа с одним ресурсом из двух потоков уже присутствует, значит синхронизацию делать надо будет Сообщение отредактировал Алексей1153 - 21.10.2012, 17:55 |
|
|
Alexander |
21.10.2012, 19:06
Сообщение
#6
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 21.10.2012 Пользователь №: 3573 Спасибо сказали: 0 раз(а) Репутация: 0 |
Возможно проблема смешна и глупа,но пытался изменить код функции,но все время были ошибки
Цитата
тогда решил проверить на простом примере
вызывает ошибку segmentation fault если смотреть в отладчике, иначе просто выводит окно о прекращении работы программы |
|
|
Алексей1153 |
21.10.2012, 19:27
Сообщение
#7
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Alexander, неинициализированная переменная.
указатели хотя бы нулём инициализируй
ну и дальше, указатель на что-то всё же должен указывать, чтобы можно было обратиться к методу указуемого но все время были ошибки телепатов не существует, покажи эти ошибки |
|
|
Alexander |
21.10.2012, 20:43
Сообщение
#8
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 21.10.2012 Пользователь №: 3573 Спасибо сказали: 0 раз(а) Репутация: 0 |
Большое спасибо за помощь, все работает как надо =)
|
|
|
Текстовая версия | Сейчас: 29.11.2024, 7:45 |