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

Страница 463 из 1888
Nikita
02.03.2017
12:16:47
-_\\

ещё и не читает

Му
02.03.2017
12:17:06
кроме того ты можешь увеличить количество коннектов которые могут так висеть

Nikita
02.03.2017
12:17:06
что ему пишут

Google
Konstantin
02.03.2017
12:17:14
еще года два после его увольнения ошибки в нем хитрые искали

Му
02.03.2017
12:17:24
но httpClient тут при чём

Nikita
02.03.2017
12:17:29
не спасает

приходится штуки типа SO_REUSEADDR выставлять

Му
02.03.2017
12:18:00
если ты будешь через один httpClient дёргать каждый раз разные хосты, а не один, у тебя будет тоже подобное

Nikita
02.03.2017
12:19:07
ну говорю вам, держите либо статический экземпляр дефолтного хэндлера

Nikita
02.03.2017
12:19:29
либо свого с нужными политиками

Axm
02.03.2017
12:20:00
я какую то фигню пишу да?
а что мешает подписаться на событие этого объекта? задача не очень понятна.

Nikita
02.03.2017
12:20:36
хочет, чтобы коллекция сама аггрерировала события всех элементов

Axm
02.03.2017
12:21:12
так ты передай ему свой хэндлер
спасибо, ты мне сейчас открыл глаза на HttpClient. я че-то не задумывался, что мы ему передаем хэндлеры всегда для работы.

Google
Axm
02.03.2017
12:21:39
хочет, чтобы коллекция сама аггрерировала события всех элементов
ну можно написать обертку чтобы при добавлении элемента происходила автоподписка

что за статья?
выше немного кинули уже ее

Nikita
02.03.2017
12:23:31
ну вот там игнорируются фичи клиента с дефолтными хидерами, поддержкой кук, вот этого всего

в чудо-статье вашей

Andrew
02.03.2017
12:24:50
или свою коллекцию, которая делает это-же под капотом

в люом случае подписка явная нужна

Nikolay
02.03.2017
12:26:43
Кто тут про телеграм говорил и голосовые звонки?)

http://telegra.ph/Predstoyashchie-obnovleniya-Telegram-Instant-View-platezhi-multi-akkaunt-i-golosovye-zvonki-02-28

Andrew
02.03.2017
12:26:49
можно айтемам подсовывать интерфейс и реализовать обсервабл

Кто тут про телеграм говорил и голосовые звонки?)
они уже даже в коде есть, разраб может тебе позвонить

@tg_girl ты поясни чё делаешь точно

Ilya
02.03.2017
12:30:38
http://telegra.ph/Predstoyashchie-obnovleniya-Telegram-Instant-View-platezhi-multi-akkaunt-i-golosovye-zvonki-02-28
>платежи Теперь соли и миксы можно оплатить прям в телеег

Vadim
02.03.2017
12:38:35
"всегда диспозьте"
@nikita_tsukanov, таски тоже диспоузишь? PS: я не спорю, что HttpClient нужно диспоузить после использования, хотя нет смысла, если Singleton

Женя
02.03.2017
12:41:37
@tg_girl ты поясни чё делаешь точно
есть базовый класс устройства, от него унаследованы классы DeviceX и DeviceY, они получают байтовый поток от устройств полключенных к COM-порту, я детектирую что устройства подключены к компьютеру, и создаю соответствующий объекты ObjDeviceX_1, ObjDeviceX_2, ObjDeviceY_1 например. Кладу их в коллекцию. Теперь мне нужно обработать события, когда от устройства в COM порт приходит пакет. Т.е. в каждом классе должно быть событие например DeviceReceive. Че дальше делать мне как-то малопонятно

Nikolay
02.03.2017
12:45:02
<sarcasm>В любой непонятной ситуации делай Dispose</sarcasm>

Nikita
02.03.2017
12:45:12
в общем да

Google
Nikita
02.03.2017
12:45:49
лучше сразу поймать ObjectDisposedException

чем потом искать утечку ресурсов

Nikolay
02.03.2017
12:46:37
Лучше почитать документацию

Чем потом ругать шарп за тормоза

Vinc
02.03.2017
12:46:49
правильно ли я понимаю работу try catch try { some code} catch (OneException) { do this } catch (AnotherException) { do that } catch (Exception ex) { Console.WriteLine(ex.Message) } либо отработает без исключений, либо будет обработан код, соответсвующий одному из указаных исключений, либо любое из остальных исключений будет выведено в консоль?

Vinc
02.03.2017
12:51:41
ток учти что по порядку проверка идет, потому наиболее общее идет всегда последним
да, потому такой порядок и указал (иначе студия15 ругается)

Axm
02.03.2017
12:52:20
class ItemEventList : List<Device> { public event EventHandler ItemEventTriggered; public new void Add(Device item) { base.Add(item); item.DeviceReceive += ItemOnDeviceReceive; } private void ItemOnDeviceReceive(object sender, EventArgs eventArgs) { ItemEventTriggered?.Invoke(this, EventArgs.Empty); } } class Device { public event EventHandler DeviceReceive; public void FireEvent() { DeviceReceive?.Invoke(this, EventArgs.Empty); } }

Arseniy
02.03.2017
12:52:49
то есть непонятно, зачем тебе какие-то события от коллекции вообще нужны нужны.

Женя
02.03.2017
12:53:08
спасибо! я все записываю)

Nikita
02.03.2017
12:53:37
а потом кто-нибудь вызовет Clear

а потом кто-нибудь скастует к IList

в общем, это, не надо наследовать ничего

Женя
02.03.2017
12:54:20
то есть непонятно, зачем тебе какие-то события от коллекции вообще нужны нужны.
ну а как еще? Несколько сходных устройств подключено к компу, как мне кажется логично сложить классы которые их обслуживают в коллекцию

Google
Axm
02.03.2017
12:54:21
а потом кто-нибудь вызовет Clear
естественно, это не готовое решение

Nikita
02.03.2017
12:54:24
положить список в поле и пробросить наружу энумератор

это не "не готовое" решение, это неправильное решение

Arseniy
02.03.2017
12:55:19
ну а как еще? Несколько сходных устройств подключено к компу, как мне кажется логично сложить классы которые их обслуживают в коллекцию
ну я вижу смысла что-то куда-то складывать только за тем, чтобы сделать некоторого "менеджера соединений", в задачи которого будет входить отслеживание времени жизни и реюз этих объектов.

а где хранить - пофиг. ну сложила ты в список, что от этого меняется? события у каждого объекта свои

Женя
02.03.2017
12:57:14
ну я вижу смысла что-то куда-то складывать только за тем, чтобы сделать некоторого "менеджера соединений", в задачи которого будет входить отслеживание времени жизни и реюз этих объектов.
да менеджер нужен, чтобы устройства можно было подключать нагорячую, без перезагрузки программы, нужен какой-то список устройств которые сейчас доступны

приходится все изучать на ходу

Admin
ERROR: S client not available

Arseniy
02.03.2017
12:58:34
если знаешь си, то пиши в стиле си. ооп-огород появится сам собой)

Женя
02.03.2017
12:59:34
ну руководство хочешь хороший проект на С# в ООП стиле, потому что старый написан на билдере в си стиле, ужасно глючный и кривой

Andrew
02.03.2017
12:59:35
ну а как еще? Несколько сходных устройств подключено к компу, как мне кажется логично сложить классы которые их обслуживают в коллекцию
https://gist.github.com/dron247/4f94a36a3ac8310bc1cb40da439f63f1 Намутил, делал в блокноте, но должно вродь скомпилиться

Rick
02.03.2017
13:05:28
посоветуйте пожалуйста справочник по c#, кроме msdn и google )

Nikolay
02.03.2017
13:06:04
Arseniy
02.03.2017
13:07:27
ну ничего не известно же. я узнал только то, что обработчиков может быть много. известно про 2 сценария 1. пишем стрим в файл 2. пишем стрим подключившемуся пользователю. теперь представим, что сидим и штатно пишем в файл. тут приходит юзер, который хочешь послушать в риалтайме. как нам быть есть мы инжектим какие-то хендлеры или делегаты в конструкторе? А если ничего не городить вообще, то можно зробить что-то вроде var deviceObj = deviceObjects.Single(d => d.Identity == "some_id"); var handler = (sender, data) => SendToUser(sender, data, user, ...); deviceObj.DataRevieved += handler; .... //когда закончили deviceObj.DataRevieved -= handler;

Andrew
02.03.2017
13:13:43
ну ничего не известно же. я узнал только то, что обработчиков может быть много. известно про 2 сценария 1. пишем стрим в файл 2. пишем стрим подключившемуся пользователю. теперь представим, что сидим и штатно пишем в файл. тут приходит юзер, который хочешь послушать в риалтайме. как нам быть есть мы инжектим какие-то хендлеры или делегаты в конструкторе? А если ничего не городить вообще, то можно зробить что-то вроде var deviceObj = deviceObjects.Single(d => d.Identity == "some_id"); var handler = (sender, data) => SendToUser(sender, data, user, ...); deviceObj.DataRevieved += handler; .... //когда закончили deviceObj.DataRevieved -= handler;
ловить эти данные забота контейнера, иначе - это нарушение инкапсуляции. Ну, это если нужно в хорошем стиле с правильным ООП, Di и прочими умными словами, проброс из воркера мимо менеджера - хороший шорткат, но если проект большой - будет пиздец в поддержке, правильнее черный ящик иметь и даже внутренние дата-объекты не экспозить, а переоборачивать в дата-объекты следующего слоя абстракции

Arseniy
02.03.2017
13:15:38
ну это всё досужие рассуждения без тз и конкурс "кто больше додумает". я считаю, что вещи, как у жени в 2017 году надо делать через акторы. но мало ли, что я думаю, зная примерно ничего

Google
Nikolay
02.03.2017
13:19:45
Вы щас начинающему разработчику C# насоветуете)

Gid
02.03.2017
13:20:27
вместо того чтоб формы писать за 15$/h

несут хуйню какую-то

акторы-хуякторы

Andrew
02.03.2017
13:21:35
А потом, продираясь через 5 слоев абстракций, пытаешься со всем этим взлететь
таков жись, слои абстракции придумали не потому, что кому то платят за количество строк) еще раз грю, на простой проект не нужны они

Леонид
02.03.2017
13:22:08
Andrew
02.03.2017
13:22:29
вместо того чтоб формы писать за 15$/h
ты скажы, что в сеть в Button1Click еще ходишь)

Gid
02.03.2017
13:23:12
Я не некрофил

Andrew
02.03.2017
13:23:45
Их придумали, чтобы твой говнокод никто не нашёл)
Так и есть, вот смотришь на мульён файла с красивыми абстракциями и анжинерными решениями, но потом докапываешься до кода который делает **экшуал ворк**...

Axm
02.03.2017
13:24:43
у нас сейчас есть классы, которые в методах вызывают классы, которые в методах вызывают классы. ну вы понели.

и в каждом ебаном методе по перевызову другого метода, но зато энтерпрайзненько

Nikolay
02.03.2017
13:26:09
1. Пишешь говнокод 2. Прячешь его за 5 слоями абстракций, чтобы никто его не нашел 3. Выкладываешь на гитхаб, все восхищаются твоими абстракциями 4. Тебя зовут выступать на конференциях

Andrew
02.03.2017
13:27:34
и в каждом ебаном методе по перевызову другого метода, но зато энтерпрайзненько
Типы то все завернули в свои? Вот пример сииильно сокращённого интероп хелпера, к нему в итоге обращается вагон красивых абстракнтых айтемов, БЛЛ там всякие, вьюмодели, в итоге в сборщике тупо руками создается/генерится лист и туда вписывается лямбда с вызовом апишки https://gist.github.com/dron247/5e3df3b69fe6f595bf9a3aed1774fa7d

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

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