Сергей
Зачем кушать сладкое, если всё равно по итогу говно будет?
Сергей
Могу по поводу памяти привести реальный пример, который нанёс хороший ущерб предприятию:
Есть некая установка, у которой есть в программном коде некий таймер, к области этого таймера можно обратится, и так случилось, что некий кто-то пересёк эту память - областью памяти на какой-то механизм, пусть будет задвижка, так вот в 20:00 какой-то бит взводится и вся установка уходит по пизде
Сергей
Потому что задвижка закрылась
Andrii
Вот это проблема. Да, люди в повседневной жизни когда учатся, делают с ошибками, что-то не до конца понимают и оно как-то да работает. Когда ещё на Либедьской вместо Ocean Plaza был стихийный рынок, а товары для суши не продавались в супермаркетах, я с девушкой как-то зашли там в китайский магазинчик. И старая китаянка, посмотрела на мой рюкзак и сказала:
— Лежать здесь!
И я понял, что это означает, «положите [рюкзак] сюда».
Но в программировании так не работает. Программистами становятся те, кто может разобраться, как оно там считает, какие операции выполняются и где что-то пошло не так. И 90% времени это как раз поиск ответа на вопрос «что и где пошло не так».
Andrii
А код писать просто, его пишут нейросети, индусы, ...
Andrii
какой ещё номер у исключений
WinAPI пронумерованы системные с кодами ошибок. А в UNIX это идёт на откуп самой программе. Хочет — коды ошибок. Хочет — классы
Сергей
Agent_RBY_
Используешь ты такой нейросеть для написания кода, а оказывается что весь этот код пишут индусы
Bogdan
Bogdan
а ты думаешь что код это как сочинение в школу писать?
Bogdan
перед тем как напечатать буквы на клавиатуре нужно миллион алгоритмов обдумать
Сергей
Bogdan
у меня на работе целый блокнот толстый в рисунках
Bogdan
и табличках всяких
Bogdan
чёт асинхронка меня подводит
Andrii
Bogdan
в шарпе нет readwrite
Bogdan
может попробовать буферный поток
Andrii
https://docs.microsoft.com/en-us/dotnet/api/system.io.stream?view=net-6.0
Там есть Read, Write, Seek
Bogdan
так он абстрактный
Bogdan
а я свой не хочу стрим писать
Andrii
Ну... FileStream конкректный, и там можно читать/писать
Bogdan
filestream не работает с namedpipe
Bogdan
у пайпов свои потоки просто они умеют отправлять только побайтово и что бы отправлять строки приходится использовать streamwriter/streamreader
Andrii
Ну пайп это пара Write стрим на одном конце пайма и Read Stream на другом конце по определению.
Bogdan
не совсем
Bogdan
в винде есть двусторонние пайпы поэтому там с обоих сторон есть ридер и с обоих врайтер
Bogdan
так как изначально Майкрософт задумывал этот вид пайпов для замены сокетов
Andrii
https://docs.microsoft.com/en-us/windows/win32/api/namedpipeapi/nf-namedpipeapi-createpipe
Где?
Bogdan
у namedpipe есть режим InOut
Andrii
https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-createnamedpipea
PIPE_ACCESS_DUPLEX
Bogdan
Bogdan
Bogdan
а то что я ниже скинул это дотнетовская обертка и режимы в которых может работать пайп
Bogdan
написано что он и асинхронно может работать ибо есть вот это
Bogdan
при попытке считать после записи канал почему-то закрывает я не понимаю прикола
Bogdan
типо я понимаю если бы там не было эвейта тогда ладно но там везде есть ожидание
Andrii
Смотри исходники
Bogdan
исходники чего
Andrii
.NET как это всё реализовано, почему закрывается
Bogdan
эта херня настолько легаси что по ней даже проектов нет раньше чем 2014 год
Andrii
Там же всё в исходниках открыто
Andrii
Просто обросло абстракциями
Bogdan
там нет ничего полезного оно просто дергает винапи
Andrii
там нет ничего полезного оно просто дергает винапи
Ну правильно, WinAPI было для облегчения портирования Linux + не просто скопировали, ещё и докидали своих фичей. В .NET добавили, что раз есть WinAPI, то надо добавить и в .NET чтобы ним можно было пользоваться. Почему закрывается? Ну это типично для Microsoft вообще: что-то работает не так, как ты ожидаешь, и хрен пойми что
Andrii
Поэтому я бы всял готовый пример, и делал всё максимально по нему. Почему я не люблю Windows, потому что если ты начинаешь писать так, как ты понимаешь API, то в большинстве случаев это не работает, и непонятно почему. Поэтому там только один путь: скопипастить их пример, убедится что работает, и понемного его менять в сторону, что тебе надо
Bogdan
это все конечно замечательно но проект мне надо сдавать иначе меня уволят
Andrii
Алексей
Bogdan
Bogdan
на линукс нет даже Visual Studio а у нас на работе нельзя райдер использовать
Dmitriy
Bogdan
нет
Bogdan
нужна именно полноценная ide
Bogdan
нет
Dmitriy
Bogdan
я не люблю java
Bogdan
Dmitriy
не стану
лол, а чего ты добиваешься?)
Bogdan
как я рад что моно платформа наконец-то подыхает окончательно
Bogdan
тот кто её придумал заслуживает попасть в ад
Bogdan
Bogdan
у .NET-а сейчас намного лучше всё чем у Java
Bogdan
Bogdan
и какое это дерьмо
Andrii
Bogdan
Bogdan
но моно МС планирует убирать из .NET
Bogdan
полностью
Andrii
фиг знает
Там проблема, что всё должно работать на консолях... Ну XBox понятно, но разные PS, Wii... и в общем-то непонятна мотивация M$ это делать. Ну а Mono и так жив больше потому что Unity ну и билд система UE
Bogdan
Andrii