
tm
26.02.2017
23:56:00

Andrew
26.02.2017
23:58:09

tm
26.02.2017
23:58:24

Google

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

tm
27.02.2017
00:00:26

Arseniy
27.02.2017
00:00:26

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

Arseniy
27.02.2017
00:03:56

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

tm
27.02.2017
00:04:16

Arseniy
27.02.2017
00:05:38

tm
27.02.2017
00:05:51

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

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

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
Внутри этого метода либо через асинк эвэит, либо влоб мы вычитываем всё что можем

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
и из принимающего потока выставляй его в 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
While(true){
hasNewLetters.Wait()
letters.TryDeqeue(...)
}
ни единого ифа
Ну ладно - один нужен на TryDeqeue
-)
Но это асинк, по другому никак
Эта группа больше не существует