
Nikita
23.07.2017
09:40:08
в итоге реально не учатся, о необходимости какой-то нормальной практики не думают
а потом удивляются

Vlad
23.07.2017
09:41:41
Зависит

Google

Nikita
23.07.2017
09:43:09
готовить-то готовят
проблема в том, что есть целый пласт народа, который не готовится

Vlad
23.07.2017
09:45:53
Хотя последнее и правда от места зависит тоже

Pichugin
23.07.2017
09:59:47
препод дает, хочешь бери, не хочешь не бери. вот и все.

Donald
23.07.2017
10:05:18
?Внимание!?
#правила #ссылки #admins
ℹ️Воздержитесь от оффтопа и флуда.
Уважайте друг друга.
?Запрещен спам и несанкционированная реклама.
@CSharpFeed - наш канал
@CSharpRest - флудилка
@MicrosoftStackJobs - вакансии и поиск работы
@Fsharp_chat - чат о F#
@xamarin_russia - чат о Xamarin
Creator: @Donaldismo
Admins:
@Worldbeater
@nikita_tsukanov
@troyanov
@sergey_chanaev
@VDIGIT
@ahydrax
Статистика: https://combot.org/chat/-1001066857984

Viktor
23.07.2017
10:11:59
Я вчера случайно наткнулся на истеричку на ютубе, который кукарекал, что образование плохое
И что к нему не мидлы после института приходят

ViridRaven
23.07.2017
10:13:17
Сам наверное сразу сеньором выпустился ?

Viktor
23.07.2017
10:13:51
Ага, сразу айос девелопер со своим портфолио
А самое охуенно было в том, что в коментах его полностью поддержал Нестерук

Friedrich
23.07.2017
10:15:01
Нестерук и тут в чатике был, кстати. Щас ему весело будет про себя читать всякую брехню.

Google

Viktor
23.07.2017
10:15:23
Собственно я смогу пруфануть

Friedrich
23.07.2017
10:15:52
Мне кажется, это всё оффтоп. Образовательный холивор опять начинаете.

Nikita
23.07.2017
10:33:04
выпилили КЕМ OmniXAML из авалонии
@
AvalonStudio начала стартовать 2 секунды вместо 15

Friedrich
23.07.2017
10:33:46
Ого, уже выпилили?

Nikita
23.07.2017
10:34:19

Gid
23.07.2017
10:34:48
Это как

Nikita
23.07.2017
10:35:40
это "а давай ты себе ИП оформишь"

Gid
23.07.2017
10:36:06
Кажется автор статьи не совсем понимает что такое ИП и фриланс

Nikita
23.07.2017
10:36:09
просто государство оуело со своими 35% отчислений
удалил неиспользуемую конфигурацию из солюшна
@
студия висит уже три минуты восстанавливая пакеты

Gid
23.07.2017
10:37:05
> а то и вообще без договора, оплачивая налом подработку, без соцпакета, без страховых и пенсионных взносов
Как же это, без пенсионных??? Без страховых???

Сергей
23.07.2017
10:37:24

Gid
23.07.2017
10:37:26
Вроде и норм статья
А вроде и слишком маня статья

Viktor
23.07.2017
10:39:11

Nikita
23.07.2017
10:39:29
всё ещё висит

Vlad
23.07.2017
10:40:09

Google

Viktor
23.07.2017
10:41:04

Nikita
23.07.2017
10:48:18
а в остальном висит

Vlad
23.07.2017
10:48:50

Nikita
23.07.2017
11:11:37
всё кроме статусбара висит
кнопки не нажимаются итп

Alexey
23.07.2017
12:08:59
Эй
Я не дочитал

Viktor
23.07.2017
12:09:20

one
23.07.2017
12:20:40
ол

Donald
23.07.2017
12:21:16
Привет

one
23.07.2017
12:21:28
привет

#d3ca
23.07.2017
13:23:52
подскажите, ключ. слово event возможно использовать только с делегатами? и что ещё оно добавляет, кроме ограничения в возможностях (типа установки в null), при работе с событием?

Вячеслав
23.07.2017
14:11:29

Jack
23.07.2017
14:20:58
Делегаты это ссылки на методы
Эвент и есть делегат
По-сути
Это что-то вроде обратного вызова

Google

Jack
23.07.2017
14:22:07
Вызываешь событие внутри класса, когда что-то должно произойти

Admin
ERROR: S client not available

Jack
23.07.2017
14:22:22
Из вне можешь подписаться на событие
Но если на событие ничего не подписано вылезет эксепшн
Нужна проверка на нулл

Nikita
23.07.2017
14:29:04


Роман
23.07.2017
14:29:34
Всем привет, у меня есть вопрос на обсудить, про выполнение длительных, неблокирующих операций.
Суть в том, что у меня есть однопоточное игровое ядро, очень похоже по своей сути на STA приложение вин форм. Это ядро обслуживает кучу клиентов, поэтому никогда не выполняет никаких длительных операций: т.е. у него есть входная очередь с событиями, которую оно разгребает и куча выходных очередей, в которые ядро кидает данные, которые нужно отправить игрокам.
А теперь задача: когда игрок подключается к серверу, нужно загрузить данные о нём с бд. Напрямую грузить нельзя, поэтому я сделал так, что запускается асинхронная операция загрузки, которая кидает в очередь сообщений данные о загруженном игроке. Вроде норм.
Но меня смущают некие маловероятные сценарии, типа: игрок подключился, отключился и вот наконец пришли данные о нём из базы. Или: игрок подключился, отключился, подключился и вот пришли данные о нём раз, и данные два, да ещё и порядок не детерминирован.
Для того чтобы не думать о таких сценариях, я решил что стоит сделать отмену асинхронной операции. Т.е. я говорю стороджу загрузить данные, стородж возвращает ид операции, если игрок отключился, то удаляем ид операции. Получается, что когда данные таки загрузятся из базы, можно понять нужны эти данные ещё или нет.
Отменять саму асинхронную операцию не вариант, т.к. она уже может завершиться, а данные уже попасть во входную очередь.
Проблема в том, что реализация пока получается не огонь :( а мне кажется, что проблема типовая для гуёвых программистов: типа грузим картинки в фоне, а если пользователь что-то нажал, то картинку уже не нужно грузить.
Что думаете? Может существует более простой способ, чем тот что я описал? Или есть готовые, удобные реализации, которые можно стырить?


Jack
23.07.2017
14:29:50

Роман
23.07.2017
14:31:28


Viktor
23.07.2017
14:32:01
Всем привет, у меня есть вопрос на обсудить, про выполнение длительных, неблокирующих операций.
Суть в том, что у меня есть однопоточное игровое ядро, очень похоже по своей сути на STA приложение вин форм. Это ядро обслуживает кучу клиентов, поэтому никогда не выполняет никаких длительных операций: т.е. у него есть входная очередь с событиями, которую оно разгребает и куча выходных очередей, в которые ядро кидает данные, которые нужно отправить игрокам.
А теперь задача: когда игрок подключается к серверу, нужно загрузить данные о нём с бд. Напрямую грузить нельзя, поэтому я сделал так, что запускается асинхронная операция загрузки, которая кидает в очередь сообщений данные о загруженном игроке. Вроде норм.
Но меня смущают некие маловероятные сценарии, типа: игрок подключился, отключился и вот наконец пришли данные о нём из базы. Или: игрок подключился, отключился, подключился и вот пришли данные о нём раз, и данные два, да ещё и порядок не детерминирован.
Для того чтобы не думать о таких сценариях, я решил что стоит сделать отмену асинхронной операции. Т.е. я говорю стороджу загрузить данные, стородж возвращает ид операции, если игрок отключился, то удаляем ид операции. Получается, что когда данные таки загрузятся из базы, можно понять нужны эти данные ещё или нет.
Отменять саму асинхронную операцию не вариант, т.к. она уже может завершиться, а данные уже попасть во входную очередь.
Проблема в том, что реализация пока получается не огонь :( а мне кажется, что проблема типовая для гуёвых программистов: типа грузим картинки в фоне, а если пользователь что-то нажал, то картинку уже не нужно грузить.
Что думаете? Может существует более простой способ, чем тот что я описал? Или есть готовые, удобные реализации, которые можно стырить?
обычно просто используют отмену (cancellation токены), т.е. данные ты загрузил, но они не нужны уже (в токене была выставлена отмена) и дальше просто ничего не должно произойти
ес-но от тебя требуется чаще вставлять`ThrowIfCancellationRequested()` в таких больших операциях


Роман
23.07.2017
14:32:58

Viktor
23.07.2017
14:33:52

Jack
23.07.2017
14:33:58

Viktor
23.07.2017
14:36:08

Роман
23.07.2017
14:37:31

Viktor
23.07.2017
14:38:53
ведь у тебя в программе можно и просто alt+f4 нажать

Роман
23.07.2017
14:41:26

Viktor
23.07.2017
14:42:12

Google

Роман
23.07.2017
14:46:09


Friedrich
23.07.2017
14:46:30
Всем привет, у меня есть вопрос на обсудить, про выполнение длительных, неблокирующих операций.
Суть в том, что у меня есть однопоточное игровое ядро, очень похоже по своей сути на STA приложение вин форм. Это ядро обслуживает кучу клиентов, поэтому никогда не выполняет никаких длительных операций: т.е. у него есть входная очередь с событиями, которую оно разгребает и куча выходных очередей, в которые ядро кидает данные, которые нужно отправить игрокам.
А теперь задача: когда игрок подключается к серверу, нужно загрузить данные о нём с бд. Напрямую грузить нельзя, поэтому я сделал так, что запускается асинхронная операция загрузки, которая кидает в очередь сообщений данные о загруженном игроке. Вроде норм.
Но меня смущают некие маловероятные сценарии, типа: игрок подключился, отключился и вот наконец пришли данные о нём из базы. Или: игрок подключился, отключился, подключился и вот пришли данные о нём раз, и данные два, да ещё и порядок не детерминирован.
Для того чтобы не думать о таких сценариях, я решил что стоит сделать отмену асинхронной операции. Т.е. я говорю стороджу загрузить данные, стородж возвращает ид операции, если игрок отключился, то удаляем ид операции. Получается, что когда данные таки загрузятся из базы, можно понять нужны эти данные ещё или нет.
Отменять саму асинхронную операцию не вариант, т.к. она уже может завершиться, а данные уже попасть во входную очередь.
Проблема в том, что реализация пока получается не огонь :( а мне кажется, что проблема типовая для гуёвых программистов: типа грузим картинки в фоне, а если пользователь что-то нажал, то картинку уже не нужно грузить.
Что думаете? Может существует более простой способ, чем тот что я описал? Или есть готовые, удобные реализации, которые можно стырить?
Мне кажется, ты правильно делаешь. Как минимум, в самом конце операции (когда ты уже завершил работу и находишься синхронно в ядре) нужно проверять, что игрок всё ещё подключен к серверу. Если не подключен — игнорировать результаты операции.
Отменять in-flight операцию через cancellation token необязательно. Насколько я понимаю, ситуация это редкая, и ты рискуешь нагородить много кода ради копеечной экономии.
С другой стороны, если ты эти моменты сможешь объединить (и сигнализировать об отключении игрока при помощи CancellationToken), то стоит это сделать. И копеечная экономия будет, и заодно вот эта вот синхронная проверка в коде ядра.


Роман
23.07.2017
14:48:31

Nikita
23.07.2017
14:49:01
Теперь студия виснет на Ctrl+F
когда там уже райдер зарелизят

Viktor
23.07.2017
14:49:35

Friedrich
23.07.2017
14:50:19

Роман
23.07.2017
14:50:25
@ahydrax, спасибо что натолкнул на правильные мысли

Viktor
23.07.2017
14:50:41

Nikita
23.07.2017
14:51:01
Эта группа больше не существует