|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
Речь идет об SmtpClient из System.Net.Mail. Метод client.Send(message) все таки очень мерзопакостно завешивает вызывающий поток. (CDO кстати ТАК не завешивает!!!) Ну собственно они и рекомендуют сlient.SendAsync(message, "userToken") Что на пальцах выглядит так: Код: vbnet 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. 26.
Что я хочу. Указать SendCompletedCallback в качестве параметра к общей ф-ции SendMailMessage, которую для себя накатал.( 17103116 ) Использовать какую-то "общую" SendCompletedCallback я не могу, т.к. в ней идет обработка результата отправки, что зависит от задачи. Т.е. я пытаюсь сделать вот это: Код: vbnet 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.
?1.Нижняя выделенная строчка ругается. Понятно что написал хрень, но смысл чего хочу понятен. Как правильно передать SendCompletedCallback в SendMailMessage? Второй видимый вариант решения. По хорошему мне бы вернуть конечный OK/str_error из самой SendMailMessage. ?2.Возможно ли грамотно реализовать что-то типа???: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 10:07 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
Дмитрий77, Примитивизм бейсика при написании простого кода при написании более сложного превращается в белый стих буквально... Мне показалось, что вы считаете, что использование эвентов и функций обратного вызова решит вам проблему замораживания формы? Без использования BackgroundWorker а хотябы это не получится. Все поднявшиеся эвенты вызваю любые обработчики в том же потоке. А когда вы начнете разбираться с многопоточностью, то и обратный вызов будет выглядеть по-другому... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 10:34 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
Дмитрий77, .SendAsync -я вот даже не заметил. :-( ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 10:38 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
D129Без использования BackgroundWorker а хотябы это не получится. Все поднявшиеся эвенты вызваю любые обработчики в том же потоке. А когда вы начнете разбираться с многопоточностью, то и обратный вызов будет выглядеть по-другому... async/away ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 10:39 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
Дмитрий77 Код: vbnet 1.
ну и жестянство ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 10:40 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
hVosttD129Без использования BackgroundWorker а хотябы это не получится. Все поднявшиеся эвенты вызваю любые обработчики в том же потоке. А когда вы начнете разбираться с многопоточностью, то и обратный вызов будет выглядеть по-другому... async/away он под .net 2.0 пишет ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 10:42 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
Дмитрий77, Да вроде все правильно. Может у вас просто тип делегата (количество параметров) не совпадает? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 10:43 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
Дмитрий77, Как ругается - тоже бы неплохо было узнать. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 10:45 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
skyANAон под .net 2.0 пишет печалька² ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 10:57 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
D129, >Да вроде все правильно. Может у вас просто тип делегата (количество параметров) не совпадает? Да, давайте лучше состедоточимся на вопросе о том как передать CallBack ф-цию в качестве параметра отбросив критику архитектуры и т.п. Хотя, я понимаю что всякие AdressOf -это VB-specific синтаксисы. >Как ругается - тоже бы неплохо было узнать. Если в коде в точности как я привел, то компилятор подчеркивает и пишет Выражение AddressOf нельзя преобразовать в "System.Delegate", поскольку тип "System.Delegate" объявлен с модификатором MustInherit и не может быть создан. Ну, я просто не знаю приема как это правильно делается. М.б. как то надо Private Delegate Function CallBackDelegate... объявить, вопрос то скорее технически-синтаксический как это все оформить >он под .net 2.0 пишет Я под .Net 4.5 делаю. Но контролирую совместимость относительно .Net 2.0 и относительно x86/x64. И кое-что приходится подправлять после этих проверок. Нельзя на Net 4.5 закладываться пока XP еще живо. >return true/[false + str_error ] >ну и жестянство не придирайся. Речь шла всего-лишь о том чтобы вернуть конечный результат из самой ф-ции а не из CallBack >BackgroundWorker,разбираться с многопоточностью Я счас не ставлю вопрос об этом В примитиве Application.DoEvents() достаточно, чтобы не вешать. CDO.Message.Send() кстати не вешает форму а System.Net.Mail.SmtpClient.Send() (без Async) -вешает ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 11:14 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
Дмитрий77>он под .net 2.0 пишет Я под .Net 4.5 делаю. Но контролирую совместимость относительно .Net 2.0 и относительно x86/x64. И кое-что приходится подправлять после этих проверок. Нельзя на Net 4.5 закладываться пока XP еще живо.Это смотря какая архитектура. К примеру рассылку писем можно через очередь организовать. Клиентское приложение ставит сообщение в очередь, а сервис (что крутится не на XP) выгребает эту очередь в несколько потоков и выполняет Send. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 11:26 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
Дмитрий77Нельзя на Net 4.5 закладываться пока XP еще живо. Зато 4.0 на XP работает. И на 4.0 можно заюзать async/await через BCL. Проходили уже А 2.0 уже давным давно пора похоронить и не вспоминать всуе. Дмитрий77>BackgroundWorker,разбираться с многопоточностью Я счас не ставлю вопрос об этом Ты вроде не хотел зависаний во время отправки писем? BackgroundWorker — то, что Малахов прописал. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 11:27 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
skyANAК примеру рассылку писем можно через очередь организовать. Клиентское приложение ставит сообщение в очередь, а сервис (что крутится не на XP) выгребает эту очередь в несколько потоков и выполняет Send. куда ж тя понесло? человек пока азы .НЕТ-а старается осилить, да ещё и на VB — это сильно! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 11:29 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
hVosttskyANAК примеру рассылку писем можно через очередь организовать. Клиентское приложение ставит сообщение в очередь, а сервис (что крутится не на XP) выгребает эту очередь в несколько потоков и выполняет Send. куда ж тя понесло? человек пока азы .НЕТ-а старается осилить, да ещё и на VB — это сильно!А тебе-то что? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 11:32 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
Дмитрий77CDO.Message.Send() кстати не вешает форму а System.Net.Mail.SmtpClient.Send() (без Async) -вешает всё логично. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 11:33 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
skyANAА тебе-то что? пытаюсь понять, зачем ты занимаешься садизмом ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 11:35 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
hVosttskyANAА тебе-то что? пытаюсь понять, зачем ты занимаешься садизмомА, ну валяй. Только я тебе тут не помогу, потому как я не считаю, что занимаюсь садизмом. Так что ты как-нибудь сам разберись в своих выводах. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 11:36 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
skyANAА, ну валяй. Только я тебе тут не помогу, потому как я не считаю, что занимаюсь садизмом. Так что ты как-нибудь сам разберись в своих выводах. едкая муха укусила? хотя чего я спрашиваю, ты ж в своём репертуаре ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 11:40 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
hVosttskyANAА, ну валяй. Только я тебе тут не помогу, потому как я не считаю, что занимаюсь садизмом. Так что ты как-нибудь сам разберись в своих выводах. едкая муха укусила? хотя чего я спрашиваю, ты ж в своём репертуаре Нет, просто смайлики не ставлю, чтобы набросить тебе мыслей для анализа. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 11:41 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
skyANAНет, просто смайлики не ставлю, чтобы набросить тебе мыслей для анализа. ну я ж говорю, ты в своём репертуаре. лишь бы чего-нибудь набросить, каких-нибудь анализов ) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 11:58 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
hVosttskyANAНет, просто смайлики не ставлю, чтобы набросить тебе мыслей для анализа. ну я ж говорю, ты в своём репертуаре. лишь бы чего-нибудь набросить, каких-нибудь анализов )А чего бы не набросить, коли тебе так и хочется их. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 12:01 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
hVosttДмитрий77CDO.Message.Send() кстати не вешает форму а System.Net.Mail.SmtpClient.Send() (без Async) -вешает всё логично. Логично то оно логично. Только CDO.Message.Send() , не вешая форму ждет результата (предполагаю что он внутри себя содержит DoEvents()) System.Net.Mail.SmtpClient.Send() ( без Async ) -тоже ждет результата (но при этом очевидно НЕ содержит никаких DoEvents()) А после System.Net.Mail.SmtpClient.Send Async () -который форму НЕ завешивает и поэтому предпочтительней результат надо отлавливать через CallBack. Улавливаешь разницы? Ладно, счас сделаю простой проект и буду думать как в ф-цию CallBack скормить. Потому как вопрос интересный. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 12:11 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
Дмитрий77, Вот интересное чтиво на эту тему, очень рекомендую ознакомиться http://stackoverflow.com/questions/5181777/use-of-application-doevents ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 12:37 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
Дмитрий77, Application.DoEvents() - The call of the devil. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 12:38 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
hVosttДмитрий77, Application.DoEvents() - The call of the devil. Не согласен. Слишком мягкая критика, должно быть жёстче! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 12:42 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
hVosttДмитрий77, Application.DoEvents() - The call of the devil. Ну, и к тому же оно может как-то спасти при дискретной операции на вызовах между шагами операции. В случае длинной атомарной операции толку не будет вообще никакого. Я как-то сильно подозреваю, что синхронный Send - именно второй случай. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 12:52 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
Дмитрий77, не мучайся с делегатами, передавай интерфейс Код: vbnet 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 13:23 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
Дмитрий77, объяви параметр как Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 13:37 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
Antonariy, спасибо что откликнулся по сути, а то тема уже ушла далеко от темы вопроса как тут обычно бывает. Но честно не понял что ты имел ввиду. petalvikДмитрий77, объяви параметр как Код: vbnet 1.
petalvik, Все, спасибо тебе. Это четкий и правильный ответ на мой вопрос. Заработало как хотелось. Как-то так: Код: vbnet 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. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46.
Но черт, про SendCompletedEventHandler ни за чтоб не догадался. == Второй вопрос снимаю, а то чувствую съедят с DoEvents(). Я не знаю чего там делает CDO.Send но ведет она себя асинхронно, т.е. ожидание MsgBox не мешает нажимать кнопки на форме. А System.Net.Mail.SmtpClient.Send() (без Async) блочит напрочь. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 14:40 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
Дмитрий77Но черт, про SendCompletedEventHandler ни за чтоб не догадался.Странно, из документации жто вроде очевидно: SmtpClient.SendCompleted Event . Там и пример есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 15:19 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
skyANAСтранно, из документации жто вроде очевидно: SmtpClient.SendCompleted Event . Там и пример есть. Пока рука не набита, не очевидно. Я то на этот пример смотрел: SmtpClient.SendAsync Method (MailMessage, Object) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 15:26 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
Дмитрий77 Но честно не понял что ты имел ввиду.VB.NET отличается от VB6 тем, что в дотнете AddressOf способен вернуть адрес любого метода, а не только того, что объявлен в модуле. Поэтому можно передавать не метод, а объект, содержащий метод. Для унификации, контроля типов и просто удобства лучше, чтобы класс этого объекта реализовывал интерфейс. Поэтому под функцию для каждой задачи пишется отдельный класс с реализацией этого интерфейса. Плюс этого подхода — функция в интерфейсе может не иметь параметров, а класс может иметь собственные свойства, играющие роль параметров и задающиеся при создании объекта. Минус - больше кода и медленнее работа, но код проще и понятней, а на скорость в твоем случае можно забить, время исполнения задачи на порядки превышает время, затрачиваемое системой на возню с объектами. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 15:29 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
Фактически делегат в VB.NET вообще не нужен, я не могу придумать ситуацию, когда без него не обойтись. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 15:33 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
И синтаксические конструкции с ним упоротые. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 15:33 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
AntonariyИ синтаксические конструкции с ним упоротые. Я один раз написал на Виби интерфейс, и его реализацию. Синтаксис позволяет поменять имя функции, которая имплеминтирует функцию интерфейса... "В теле такая гибкость образовалась" (с) :-) Вот только зачем подобная возможность... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 16:19 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
D129AntonariyИ синтаксические конструкции с ним упоротые. Я один раз написал на Виби интерфейс, и его реализацию. Синтаксис позволяет поменять имя функции, которая имплеминтирует функцию интерфейса... "В теле такая гибкость образовалась" (с) :-) Вот только зачем подобная возможность...На тот случай, если захочешь испытать приятную гибкость в теле :) Просто дает больше свободы в названиях, а принципиально — незачем. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 16:25 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
Веселуха какая-то. Старался-старался...вроде все чики-пуки Тут обнаружил что gmail.com при client.SendAsync(message, "userToken") игнорирует явно заданную UTF-8 в DisplayName адресов from/to и в Subject (иероглифы присылает без указания кодировки перед указанными полями) а для client.Send(message) все нормально. С тем же кодом подготовки message! А с Hotmail например все нормально. Как такое может быть... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 16:40 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
Если говорить точно, то вопрос "зачем" некорректен. Это просто следствие того, что раньше отношение реализации к интерфейсу синтаксически описывалось как Public Function ИмяИнтерфейся_ИмяФункции, а в дотнете в декларации членов класса появилось ключевое слово Implements, явно и типизированно указывающее на член интерфейса. Оно отделило имя члена интерфейса от имени члена класса, реализующего интерфейс. Еще один момент: если объявить реализацию как Private, то она будет доступна только через интерфейс, а если Public, то и через класс тоже. Удобно, не нужно лишние касты делать :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 16:43 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
Дмитрий77, ... разные почтовые сервера трактуют RFC совершенно свободолюбиво, при этом .net SMTP-клиент не совсем заточен под все возможные варианты ... Была в старых версиях .Net проблема с не-латинской темой и именем файла вложения более 40 байт (и МС даже выпускали заплатку) ... Ну и еще что-то может вылезти ... Поэтому - универсального рецепта с почтой нет .. Это вы еще за получение и парсинг не брались .. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 17:19 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
carrotik, а я вот нарочно проверил. С Net 2.0/3.5 этот глюк с gmail/async/utf8 не вылезает, а вылезает только в Net 4/4.5. Неоднозначностей море. CDO таки надежней сделано, однако. Все, забиваю. А то счас начну еще галочки придумывать типа async/sync. carrotikЭто вы еще за получение и парсинг не брались .. :) вот поэтому и не хочу пока браться, а отдал это на откуп cmd-утилите. Вчера об этом только упомянул вскользь. === Antonary, ты извини, не реагирую на твои посты. Ты вот утверждал что на .Net быстрее в 5 раз все пишется, чет я этого пока не наблюдаю. Год вообще не занимался, было интереснее всякие VOIP-фишки делать в рамках той системы к которой привык. А вот счас типа взялся проект перекатывать, у меня в проекте несколько exe-шников, 3 больших. 3 месяца только на первом большом сижу, готовность его где-то 2/3. Ну, интерфейс, да, чуть легче рисуется. Но стоко всяких глюко-неоднозначностей. Эх, когда еще дивиденты с этой затеи будут. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 17:40 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
на c++ писать нужно ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 18:28 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
Дмитрий77 Ты вот утверждал что на .Net быстрее в 5 раз все пишется, чет я этого пока не наблюдаю.Во-первых, нужно время руку набить, чтобы всякая тривиальщина писалась спинным мозгом, как например этот финт с заменой делегата. Я тоже не с первого подхода в дотнет вписался. Пробовать понемногу начал с 2003й версии, но осилил лишь 2008ю, ибо нужда совсем приперла. Во-вторых, задача у тебя с точки зрения реализации не простая, хотя подобных продуктов хватает. Когда советовал, я еще очень смутно представлял, чем ты занимаешься. Я под десктоп пишу мало, в основном веб, а на сервере код настолько проще, что я уже дошел до автоматической генерации чуть менее, чем его половины. В-третьих, у тебя очень высокие требования, которые дотнет не всегда способен удовлетворить, поскольку не покрывает 100% функционала системы. Поэтому и не наблюдаешь, имхо. Дмитрий77 ты извини, не реагирую на твои посты.ок, пейсать больше не буду :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 18:39 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
Antonariyхотя подобных продуктов хватает. Если имел ввиду софтфон, то я не его переписываю, а другой продукт - он перспективнее как ни странно. Хотя в софтфон души вложил больше и он написан грамотнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2015, 19:07 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
AntonariyVB.NET отличается от VB6 тем, что в дотнете AddressOf способен вернуть адрес любого метода, а не только того, что объявлен в модуле. Поэтому можно передавать не метод, а объект, содержащий метод. Для унификации, контроля типов и просто удобства лучше, чтобы класс этого объекта реализовывал интерфейс. Поэтому под функцию для каждой задачи пишется отдельный класс с реализацией этого интерфейса. Плюс этого подхода — функция в интерфейсе может не иметь параметров, а класс может иметь собственные свойства, играющие роль параметров и задающиеся при создании объекта. Минус - больше кода и медленнее работа, но код проще и понятней, а на скорость в твоем случае можно забить, время исполнения задачи на порядки превышает время, затрачиваемое системой на возню с объектами.Чтобы не заниматься этой мутотой придуманы лямбды и захват локальных переменных. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2015, 06:26 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
Ага, придумана еще большая мутота. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2015, 08:33 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
AntonariyАга, придумана еще большая мутота.Нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2015, 13:34 |
|
Как передать кастом-CallBack ф-цию в качестве аргумента в другую ф-цию?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2015, 14:22 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1402031]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
others: | 331ms |
total: | 476ms |
0 / 0 |