@CSharpChatЭта группа больше не существует

Страница 425 из 1888
tm
26.02.2017
23:56:00
не, я тут несогласен вообще. дотнет был и еще пока остается ms only технологией, то что они там какие-то обрезки начали форсить как кросплатформу - это пока даже не смешно. так что да, беда. от себя лишь интересно, что не стартануло на моно?)
На момент выбора платформ - мыслей о линухах вообще не было. Сейчас бы я выбрал бы Java как основную платформу. Но слишком большая кодовая база уже есть. Нереально переписать.

не, я тут несогласен вообще. дотнет был и еще пока остается ms only технологией, то что они там какие-то обрезки начали форсить как кросплатформу - это пока даже не смешно. так что да, беда. от себя лишь интересно, что не стартануло на моно?)
Сложно сказать определённо. Оно на моно работает, но знаешь.... это как на автовазе в кругосветку: то память потечет, то тест упадёт, то какой то нюанс поведения возникнет, то тормоза на ровном месте. А контроллер нужно оставить где нибудь в тайге на 5 лет без обслуживания...

Andrew
26.02.2017
23:58:09
Мужик, тебе определённо нужно поработать над лаконичностью. код моего джуниора легче читать -))
У меня душа широкая, льется утром как из ведра. Плюс свайп на телефоне половину слов не знает, вот бритва оккама на текст и не ложится

Google
Max
26.02.2017
23:59:34
можно создать свое событие для объекта, а можно ли создать событие для списка объектов

?

Max
27.02.2017
00:03:25
не могу сообразить, у меня есть метод для работы с почтой, внутри его запускается асинхронный метод проверки прихода писем, и возвращает список новых писем

Max
27.02.2017
00:04:03
я не могу сообразить как сделать так тчо бы при возникновении события возращало список писем

Arseniy
27.02.2017
00:05:38
tm
27.02.2017
00:05:51
я кстати, не уверен, что дотнет сам по себе подходит для "5 лет без обслуживания". хотя якобы в израиле только в путь
Недавно одна асинхронная прога так отпахала 4 года. Смех был в том как мы это узнали. Дежурные почему то ребутнули комп. Прога стояла в автозапуске, а я, 4ре года назад запустил конфигурацию проги с флешки. тоесть на запуске прога полезла на флешку которой естественно не оказалось -)))

я не могу сообразить как сделать так тчо бы при возникновении события возращало список писем
Сделай метод асинхронным. Либо на старй манер передавай CallBack делегат, который должен вызваться по завершение асинк операции

Max
27.02.2017
00:06:53
возникло событие, получил список писем, вернул, не?
не могу понять как это реализовать со списком

anton
27.02.2017
00:07:48
а вы в каких часовых поясах вообще? чего не спите?

Google
Arseniy
27.02.2017
00:07:51
Max
27.02.2017
00:08:14
public static event EventHandler<List<Message» getListMessage;

Arseniy
27.02.2017
00:08:22
мск

Max
27.02.2017
00:08:24
обявляю событие

но как его привязать к списку сообщений

Arseniy
27.02.2017
00:10:03
нет такой опции "привязать к списку сообщений"

Max
27.02.2017
00:10:38
так я про то и говорю, как сделать

Arseniy
27.02.2017
00:10:48
public static event EventHandler<List<Message» getListMessage;
довай формулировку на русском, будем думать как на сишарпе

tm
27.02.2017
00:11:39
но как его привязать к списку сообщений
То событие которое ты объявил это источник событий. В твоём случае это не подходит

Max
27.02.2017
00:12:47
а как тогда быть?

Arseniy
27.02.2017
00:13:16
а как тогда быть?
опиши процесс, который хочешь реализовать же

Max
27.02.2017
00:13:28
прогармма работает с почтой

отправляет составляет фильтрует еще что то

tm
27.02.2017
00:13:41
Я бы сделал так (если правильно понял таск) Task<MailSendResult> lettersSend = MailServer.Send(myLetters); letterSend.Continuewith(myTask) или что то вроде

Max
27.02.2017
00:14:24
сейчас есть условие что когда кол-во писем меньше 5 допустим

она запускает метод берущий письма

я хочу фоновым потоком запустить метод

который будет постоянно пополнять список писем

можно например список писем объявить как глобальную переменную

Google
Max
27.02.2017
00:16:21
но есть ли другие решения

tm
27.02.2017
00:16:28
отправляет составляет фильтрует еще что то
Макс. Если по простому - то нужно сделать так, чтобы был вызван твой код по окончание длительного, асинхронного действия - верно я тебя понял?

Arseniy
27.02.2017
00:16:30
тогда я не знаю технологий которым можно доверять подобное -)
ну я не знаю ни ограничений по ресурсам, ни по необходимости дистанционного обновления, ничего. если это маленькая пека, то ей ок и жвм и дотнет. задачи же тожа не известны.

Max
27.02.2017
00:18:24
Макс. Если по простому - то нужно сделать так, чтобы был вызван твой код по окончание длительного, асинхронного действия - верно я тебя понял?
думаю нет, метод чтения писем в цикле запускает запрос в ответе которого получает список писем

надо что бы каждую итерацию он возращал то что уже получил

tm
27.02.2017
00:18:54
А в чём проблема?

Arseniy
27.02.2017
00:18:56
я чо не понимаю. если человек не может внятно обяснить задачу на низком уровне, то его надо попросить рассказать на более высоком уровне. если и там проблемы, то надо попросить исходную задачу. зачем что-то делать, пока ничо не ясно

какие-то фоновые потоки, какая-то херня

tm
27.02.2017
00:19:40
Тут похоже без потоков. Всё в лоб

Arseniy
27.02.2017
00:19:46
в чем задача-то?

Max
27.02.2017
00:19:51
пля

прогармма обрабатывает письма

Max
27.02.2017
00:20:01
письма заканчиваются

запускается метод берущий письма

Arseniy
27.02.2017
00:20:16
наплевать, заканчиваются или нет

Max
27.02.2017
00:20:19
все время пока работает этот метод

письма не обрабатываются

Arseniy
27.02.2017
00:20:25
какая конечная цель обработки писем

Max
27.02.2017
00:20:38
я хочу что бы обрабатывались непрерывно

сортирует и переправляет на другие имеилы

Google
tm
27.02.2017
00:20:53
письма не обрабатываются
Тоесть тебе нужно два потока - поток обработчика и поток приёмки - верно?

Max
27.02.2017
00:21:01
да

Arseniy
27.02.2017
00:21:19
хочешь постоянно фетчить новые сообщения и реагировать на новые?

tm
27.02.2017
00:21:29
И поток приёмки должен сообщать обработчику что что то добавилось?

Max
27.02.2017
00:22:04
поток приемник просто постоянно пополняет поток обработчик

tm
27.02.2017
00:22:06
сортирует и переправляет на другие имеилы
Теперь давай определимся со средствами - ты знаешь что такое Task<T> ?

Max
27.02.2017
00:22:10
да

я делал асинхронное выполнение

tm
27.02.2017
00:22:34
да
Отлично

Admin
ERROR: S client not available

Max
27.02.2017
00:22:35
проблема в передаче данных

приемник принимает

обработчик орбабатывает

но они работают с разными списками

надо что бы приемник запихивал письма в список обработчика

tm
27.02.2017
00:23:25
проблема в передаче данных
Возьмём метод Task<Letter[]> ReceiveLetters()

Внутри этого метода либо через асинк эвэит, либо влоб мы вычитываем всё что можем

Max
27.02.2017
00:25:34
Task t = Task.Run(() => FiltrationEmailList(mail));

Arseniy
27.02.2017
00:26:04
@maxvell2010 какую либу для работы с почтой используешь?

Max
27.02.2017
00:26:18
там своя либа

Google
Max
27.02.2017
00:26:28
вопрос не в этом

tm
27.02.2017
00:26:37
там своя либа
Тогда возьми ManualResetEvent

и из принимающего потока выставляй его в True когда пришли письма

Для общего списка используй ConcurentQueue<Letter>

Arseniy
27.02.2017
00:27:27
++

tm
27.02.2017
00:27:47
Передай ConcurentQueue и ManualResetEvent - обоим потокам, и попивай чайок -)

Max
27.02.2017
00:28:01
бля про это я не слышал

надо почитать

Arseniy
27.02.2017
00:28:05
а эвент ему зачем?

Max
27.02.2017
00:28:13
я думал через евент передавать письма

Arseniy
27.02.2017
00:28:35
пишет в коллекцию и на ней же ждет, не?

Max
27.02.2017
00:28:36
типа получил письма, произошло событие, письма передались на обработку

tm
27.02.2017
00:28:41
а эвент ему зачем?
Чтобы сообщить ожидающему потоку что есть новые письма. Чтобы в вайл тру или трид слипе не гонять поток

Max
27.02.2017
00:28:43
ну да

Arseniy
27.02.2017
00:29:20
нафиг чет сообщать. лишнаяя логика и куча лишних ифов

tm
27.02.2017
00:29:22
типа получил письма, произошло событие, письма передались на обработку
Да, но это не те события которые event. ManualResetEvent - подобен турникету метро. Прочитай в гугле (я всё равно не объясню лучше)

While(true){ hasNewLetters.Wait() letters.TryDeqeue(...) }

ни единого ифа

Ну ладно - один нужен на TryDeqeue

-)

Но это асинк, по другому никак

Страница 425 из 1888

Эта группа больше не существует Эта группа больше не существует