|
При вызове функции указатель на DLL = null.
|
|||
---|---|---|---|
#18+
Имеем класс A Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
Теперь класс B Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
При этом, функции класса А не связанные с запросом к DLL отрабатывают нормально. Если в B закомментировать вызов A2.GetData2(), то далее A и все остальные объекты отрабатывают штатно. Собственно, пока в кл.В больше ничего и нет. Только начал писать. "Есть многое на свете, друг Горацио, что и не сразу в голову придет." М. Твен "Приключения Геккельбери Финна" ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2014, 20:20 |
|
При вызове функции указатель на DLL = null.
|
|||
---|---|---|---|
#18+
Сформулирую короче. Класс А создает класс В и отправляет ему ссылку на себя для обеспечения обратного вызова функций. B1=new B(this). Обратный вызов работает не всегда корректно и, иногда, заканчивается полным отказом программы. Необходимо обеспечить В надежный обратный вызов методов и пр. из А. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2014, 23:17 |
|
При вызове функции указатель на DLL = null.
|
|||
---|---|---|---|
#18+
YUBA, общий совет - не делай в конструкторах обращений к DLLLib, только настройку ссылок ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2014, 23:23 |
|
При вызове функции указатель на DLL = null.
|
|||
---|---|---|---|
#18+
Изопропилобщий совет - не делай в конструкторах обращений к DLLLib, только настройку ссылокЯ не знаю как это сделать. Это как собака кусающая себя за хвост. Я не могу выйти из конструктора (основного потока), пока не запущу потоки. И не могу запустить потоки, пока не прочитаю данные через DLL и не создам объект (класс) В . Кстати, класс А беспроблемно отрабатывает взаимодействие с DLL из конструктора. Суммарно, наверное с мегабайт оттуда читает. Это оставляем без изменений. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2014, 00:37 |
|
При вызове функции указатель на DLL = null.
|
|||
---|---|---|---|
#18+
YUBA, вынеси из конструкторов инициализацию - станет прозрачнее. Есть уверенность, что DLLLib поддерживает многопоточность? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2014, 00:45 |
|
При вызове функции указатель на DLL = null.
|
|||
---|---|---|---|
#18+
Изопропил, думаю, не поддерживает, хотя, определенно неизвестно. При моем останове, приложение связанное с DLL тоже встает. В состояние - "не отвечает". Хотя приложение многопоточное, но, судя по всему, мы влезаем в поток с наибольшим приоритетом. С другой стороны, сейчас работают 4 события и 3 потока по событиям, + независимо, запрашиваются данные. Сбоев вообще не было. Все оч. шустро. Однако, не пойму, с какого бодуна указатель на DLL в null соскакивает при вызове из B объекта. Там пока один поток - основной. Пока конструктор В не закончится дальше не пойдем. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2014, 01:22 |
|
При вызове функции указатель на DLL = null.
|
|||
---|---|---|---|
#18+
Задачка решена, хотя полной уверенности в победе нет. Таким образом. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
Класс В Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Ниче не понял, в смысле, почему в 1-м варианте не работало. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2014, 18:48 |
|
|
start [/forum/topic.php?fid=20&msg=38618156&tid=1403013]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 334ms |
total: | 456ms |
0 / 0 |