Size: a a a

2020 January 08

NT

Nikita Tsukanov in pro.net
Которую надо детектить в рантайме
источник

NT

Nikita Tsukanov in pro.net
Пуштл твой софт на одном и том же дистибутиве линукса могутьзапустить под двумя десятками разных DE
источник

B

Bretbas in pro.net
Народ. Читаю Рихтера.

Он показывает, как "правильно" генерировать событие, безопасно по отношению к потокам.
А именно сохранить цепочку делегатов, подписанных на событие, во временную переменную через вызов Thread.VolatileRead.
Я, честно, никогда так не делал.
Я всегда событию заранее задавал начальное значение делегата:
public event Action MyEvent = delegate {};
Что приводило к меньшему числу проверок на null, и всякой возни с VolatileRead.

Чем мой способ плох? Скажите пожалуйста
источник

IC

Ilya Chernoudov in pro.net
Bretbas
Народ. Читаю Рихтера.

Он показывает, как "правильно" генерировать событие, безопасно по отношению к потокам.
А именно сохранить цепочку делегатов, подписанных на событие, во временную переменную через вызов Thread.VolatileRead.
Я, честно, никогда так не делал.
Я всегда событию заранее задавал начальное значение делегата:
public event Action MyEvent = delegate {};
Что приводило к меньшему числу проверок на null, и всякой возни с VolatileRead.

Чем мой способ плох? Скажите пожалуйста
Всё норм, продолжай так делать
источник

G

Gopneg in pro.net
Bretbas
Народ. Читаю Рихтера.

Он показывает, как "правильно" генерировать событие, безопасно по отношению к потокам.
А именно сохранить цепочку делегатов, подписанных на событие, во временную переменную через вызов Thread.VolatileRead.
Я, честно, никогда так не делал.
Я всегда событию заранее задавал начальное значение делегата:
public event Action MyEvent = delegate {};
Что приводило к меньшему числу проверок на null, и всякой возни с VolatileRead.

Чем мой способ плох? Скажите пожалуйста
ну как обычно - к проблемам доступа к коллекциям в многопоточном окружении
источник

IC

Ilya Chernoudov in pro.net
У тебя всегда создаётся 1 объект в куче и в цепочке на 1 вызов больше
источник

B

Bretbas in pro.net
Просто я вообще не вижу смысла проверок события на то, есть ли в нем какие либо подписчики или нет? Почему microsoft сразу не сделали так, чтобы событие инициализировать delegate {}
источник

B

Bretbas in pro.net
Ilya Chernoudov
У тебя всегда создаётся 1 объект в куче и в цепочке на 1 вызов больше
Да. Я знаю
источник

B

Bretbas in pro.net
Но в том и суть
источник

B

Bretbas in pro.net
Проблем меньше же
источник

IC

Ilya Chernoudov in pro.net
источник

IC

Ilya Chernoudov in pro.net
Вот это поворот!
источник

B

Bretbas in pro.net
И еще Рихтер этот страшный пример приводит
источник

IC

Ilya Chernoudov in pro.net
Bretbas
И еще Рихтер этот страшный пример приводит
Потому что Рихтер шарит
источник

IC

Ilya Chernoudov in pro.net
Вообще это просто 2 разных подхода, вот и всё
источник

B

Bretbas in pro.net
Ilya Chernoudov
Вот это поворот!
async в main?
источник

G

Gopneg in pro.net
Ilya Chernoudov
Вот это поворот!
а в чем поворот?
источник

IC

Ilya Chernoudov in pro.net
Bretbas
async в main?
Это пример в официальной репе дотнета
источник

IC

Ilya Chernoudov in pro.net
Тем, что там есть ещё и синхронный вариант
источник

G

Gopneg in pro.net
Ilya Chernoudov
Тем, что там есть ещё и синхронный вариант
да вроде с самого начала был, как асунки сделали, не?
источник