|
Как передать кастом-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?fid=20&gotonew=1&tid=1402031]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
10ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
others: | 9ms |
total: | 151ms |
0 / 0 |