Этого треда уже нет.
Это копия, сохраненная 23 мая 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
6 Кб, 257x257
OFFICIAL C# THREAD №24 # OP #717891 В конец треда | Веб
Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем C#. Это поистине язык богов, сочетающий в себе простоту использования с поистине неограниченными возможностями. Знание C# — прекрасный детектор современного, умного и успешного человека. Изучение платформы .NET безошибочно указывает на успешного в будущем человека.
ITT элита продолжает обсуждает будущее этого прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии.

Вся литература вторым постом

1. Ресурсы:
- http://stackoverflow.com/questions/tagged/c#
- http://www.tutorialspoint.com/csharp/
- http://professorweb.ru
- http://net-informations.com
- http://habrahabr.ru/hub/csharp/

2. Онлайн-компиляторы:
- https://dotnetfiddle.net/ - возможно лучший вариант. Встроено немного убогое, но все-таки автодополнение и проверка синтаксиса.
- http://ideone.com/
- http://csharppad.com/
- http://www.tutorialspoint.com/compile_csharp_online.php
- http://rextester.com/l/csharp_online_compiler

3. WinForms или WPF?
Зависит от задачи. Для небольших проектов, скорее всего, будет достаточно винформочек. В случае, если разрабатываемое приложение достаточно серьёзное, то возможно его стоит писать с использованием WPF. WPF очень хорошо работает с паттерном MVVM ( https://ru.wikipedia.org/wiki/Model-View-ViewModel ), и позволяет пилить очень кастомизированные интерфейсы с помощью XAML, что в случае WinForms, делать намного сложнее.

4. Мне тут знакомый_нейм сказал, что C# умирает, это правда? Может не стоит его учить?
Неправда. C# довольно активно развивается, недавно вышел новый компилятор, шестая версия шарпа, и уже активно разработывается седьмая. Весь дотнет понемногу становится опенсорсным, а ASP.NET становится независимым от платформы. В некотором смысле понемногу вымирают десктопные приложения с развитием веб-технологий, но в том же энтерпрайзе он еще очень даже востребован.

5. Какую ИДЕ выбрать?
Для Windows самым очевидным вариантом будет Visual Studio (https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx). Студия распространяется в двух редакциях: бесплатная коммьюнити-версия и платный энтерпрейс эдишн. В большинстве случае будет достаточно Community-версии: она поддерживает и C#, C++, VB.NET и F#, а так же имеет возможность установки дополнений
Для мака и никсов самый юзабельный вариант - MonoDevelop ( http://www.monodevelop.com/download/ ).
Для vim можно использовать OmniSharp ( https://github.com/OmniSharp/omnisharp-vim ).
Кросплатформенный полуредактор/полуIDE VS Code ( https://www.visualstudio.com/en-us/products/code-vs.aspx )
Также существуют плагины для Atom'а и Sublime Text, но функциональность там достаточно сильно урезана.
Кроме того, в данный момент JetBrains активно пилит свою IDE для шарпа (Project Rider), вероятно в ближайшее время станут доступны первые EAP. IDE заявлена как кросплатформенная, со всем решарпер-функционалом, поддержкой отладки, моно и .net core.
SharpDevelop - еще одна IDE для C#, отличается малым размером (около 20мб) и опциональной портабельностью, при этом имея дизайнер WinForms и WPF, а также интеграцию с FxCop, StyleCop и прочими ништяками. Если хочется что-то по быстрому набросать, а выкачивать гигабйты нет желания, то возможно SharpDevelop будет лучшим вариантом.

6. С# для мобильной разработки
Если нужны инструменты для разработке под мобилы, ставь сразу VS2015 и при установке выбирай все нужные компоненты.
Больше информации тут - https://msdn.microsoft.com/ru-ru/library/dn771552.aspx
Из актуальной литературы
- Xamarin Mobile Application Development
- Xamarin Essentials

7. Дополнительные инструменты для разработки на C#
LINQPad - сорт оф REPL, с возможностью быстрого подключения к БД и удобной визуализацией данных
dnSpy - декомпилятор, малоизвестный форк ILSpy, где реализована возможность модификации IL-кода прямо в EXE и DLL файлах, отладка IL-кода и много других фич для reverse engineering'а. Плюс няшные темы как в студии
dotPeek - бесплатный декомпилятор от JetBrains
scriptcs - для запуска C# кода как скриптов, возможность использовать как REPL

8. Расширения для студии
ReSharper - одно из известнейших. Рефакторинги, умный автокомплит, настраиваемый стиль кода. Платный, но можно стянуть с торрентов
Supercharger - показывает "карту" с классами, методами и всем остальным сбоку от кода с возможностью прыгать по ним
Indent Guides - показывает вертикальные линии на каждом уровне отступов.
Format document on Save - форматирует код каждый раз при сохранении документа
Code alignment - Выравнивает код по указанным символам. Удобно, например, при инициализации словарей или в перечислениях

Обзор Roslyn: https://github.com/dotnet/roslyn/wiki/Roslyn Overview
Новые возможности C# 6.0: https://github.com/dotnet/roslyn/wiki/New-Language-Features-in-C#-6

ПРИНИМАЮТСЯ ПРЕДЛОЖЕНИЯ ПО ШАПКЕ

Код этой шапки: http://pastebin.com/cKKXYArs

Прошлый тред тонет здесь: https://2ch.hk/pr/res/707882.html (М)
# OP #2 #717892
9. Что почитать?
- The C# Player's Guide, второе издание (RB Whitaker) - отличная книга для ньюфагов в шарпе, все расписывается довольно подробно, очень много примеров кода.
- C# 6.0 in a Nutshell (Joseph Albahari и Ben Albahari) - огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином
- C# 6.0 Pocket Reference (Joseph Albahari и Ben Albahari) - просто выжимка из справочника, можно всегда держать рукой
- C# 6.0 and the .NET 4.6 Framework (Andrew Troelsen) - 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.
- C# 6.0 Cookbook (Jay Hilyard и Stephen Teilhet) - книга в формате "проблема-решение", можно пройтись по оглавлению, найти интересные проблемы и попыпаться самому решить, а уже потом посмотреть представленное решение. Книга скорее не для ньюфагов, а для тех, кто уже знаком с шарпом.

10. Более хардкорный материал
- C# in Depth (Jon Skeet) - написана в виде истории версий C#, начиная с C#1.0. Описываются возможности, которые были добавлены в определенной версии и далее достаточно хардкорно и подробно эти возможности расписываются.
- Writing High Performance .NET Code (Ben Watson) - охуенная книга. В основном фокуируется на оптимизации дотнет-говна. Методы оптимизации проложений, профилирование, вот это все. Крутейшая и достаточно детальная глава по GC. Рассматриваются достаточно известные проблемы вроде "for vs foreach", "класс vs структрура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче все что нужно, чтобы вам перезвонили.
- CLR via C# (Jeffrey Richter) - это классика, это знать надо.

11. Хочу еще хардкорней
- C# Deconstructed (Mohammad Rahman) - введение в CLR, модели памяти и выполнения в CLR, байтоебство, JIT. Книга достаточно коротенькая, менее 200 страниц, можно осилить за пару дней. Желателен опыт работы WinDbg и понимание устройства PE-формата.
- Expert C# 5.0 with .NET 4.5 Framework - еще одна книга этого автора, в этот раз намного длиннее. Очень много IL, анализа и разбора стандартной либы (те же коллекции), разбор ивентов, дегегатов, асинхронности etc. на уровне байткода.
- .NET IL Assembler (Serge Lidin) - ILёбство, во многих местах повторяет документацию MSDN, но при этом имеет много интересных дополнений и заметок. Кроме того все неплохо структуировано и разложено по красивым табличкам

12. Литература по WPF
Из более-менее актуального можно выделить пару книг:
- Pro WPF 4.5 in C# (Matthew MacDonald)
- Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)

13. Литература по ASP.NET
- Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson)
- Pro ASP.NET MVC 5 Platform (Adam Freeman)
- Beginning ASP.NET for Visual Studio 2015 (William Penberthy)

14. Литература по асинхронности, параллелизму и всему такому
- Concurrency in C# Cookbook (Stephen Cleary) - книга, написанная в формате "проблема - решение". Кроме базовых вещей, вроде асинков и параллелизма рассматриваются TPL Dataflows, Rx (реактивные расширения), тестирование всего этого асинхронного добра, ну и работа этого всего на более низких уровнях абстракции
- Multithreading in C# 5.0 Cookbook - в основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная
- Pro Async_hronous Programming with .NET (Richard Blewett, Andrew Clymer) - опять же, интересного немного, но неплохие главы про асинхронность + UI и анализ дампов памяти в windbg

15. Литература не по шарпу, но так или иначе связанная с языком
C# Game Programming Cookbook for Unity 3D (Jeff W. Murray) - разработка на шарпе под Unity
Introduction to Neural Networks with C# (Jeff Heaton) - изучение нейронных сетей с примерами кода на шарпе. Под конец пишем программу для распознавания символов и нейроботов.
Machine Learning Using C# Succinctly (James D. McCaffrey) - довольная коротенькая книга на тему машинного обучения с примерами кода на C#. Ничего особого: k-средние, классификация, наивный байес, но с кодом, который всегда можно поразбирать, если что неясно.

16. Но я не знаю английский, как я буду это все читать?
На некоторые из перечисленных книг есть переводы, которые можно найти на том же рутрекере, однако, зачастую эти переводы неактальны, содержат неточности, и не самые понятные варианты перевода. Кроме того, переводы обычно пилятся только для нескольких самых популярных книг, более-менее серьёзный материал не переводят. Всегда можно сесть со словарем и понемногу читать, переводя непонятные фрагменты. Это очень полезно, так как в любом случае в разработке без знания ангельского делать нечего. Если очень хочется, то гуглить по запросам: "C# 5.0, Справочник. Полное описание языка", "C# для профессионалов. Тонкости программирования", "Программирование на платформе Microsoft .NET Framework 4.5 на языке C#"

17. Что еще нужно знать, чтобы взяли работать за еду?
- SQL - подойдет люая книг по MSSQL/MySQL, базовые запросы, SELECT, INSERT, DELETE, UPDATE. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper
- Системы контроля версий - обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote's, разрешение конфликтов, трехпанельные дифф-менеджеры, cherry-pick
- Гитхабы-гитхабчики - issues, организация пулл-реквестов, интеграция с appveyor, теги, релизы, маркдаун
- Алгоритмы - сложность алгоритмов, сортировки (пузырек, быстрая, вставками), поиск, рекурсия, алгоритмы на строках
- Структуры данных - связанные списки, деревья (бинарные, красно-черные, b-деревья), хеш-таблицы, графы
- Если идти в веб - HTML, CSS, JavaScript, веб-сокеты, REST
- Паттерны проектирования, стиль кода, внедрение зависимостей, MVVM (если хочется в WPF), SOLID

18. Я не умею читать, что посмотреть?
- Programming with C# - https://www.edx.org/course/programming-c-microsoft-dev204x-0
- Beginning Game Programming with C# - https://www.coursera.org/course/gameprogramming
- C# Fundamentals: Development for Absolute Beginners - https://goo.gl/meyyxO
- Коллекция видеоуроков, по всему дотнетовскому и смежным темам (250 часов, на русском) - https://nnm-club.me/forum/viewtopic.php?t=891636
- Набор курсов по C# от O'Reilly Media (28 часов, на английском) - http://rutracker.org/forum/viewtopic.php?t=5082978
# OP #2 #717892
9. Что почитать?
- The C# Player's Guide, второе издание (RB Whitaker) - отличная книга для ньюфагов в шарпе, все расписывается довольно подробно, очень много примеров кода.
- C# 6.0 in a Nutshell (Joseph Albahari и Ben Albahari) - огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином
- C# 6.0 Pocket Reference (Joseph Albahari и Ben Albahari) - просто выжимка из справочника, можно всегда держать рукой
- C# 6.0 and the .NET 4.6 Framework (Andrew Troelsen) - 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.
- C# 6.0 Cookbook (Jay Hilyard и Stephen Teilhet) - книга в формате "проблема-решение", можно пройтись по оглавлению, найти интересные проблемы и попыпаться самому решить, а уже потом посмотреть представленное решение. Книга скорее не для ньюфагов, а для тех, кто уже знаком с шарпом.

10. Более хардкорный материал
- C# in Depth (Jon Skeet) - написана в виде истории версий C#, начиная с C#1.0. Описываются возможности, которые были добавлены в определенной версии и далее достаточно хардкорно и подробно эти возможности расписываются.
- Writing High Performance .NET Code (Ben Watson) - охуенная книга. В основном фокуируется на оптимизации дотнет-говна. Методы оптимизации проложений, профилирование, вот это все. Крутейшая и достаточно детальная глава по GC. Рассматриваются достаточно известные проблемы вроде "for vs foreach", "класс vs структрура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче все что нужно, чтобы вам перезвонили.
- CLR via C# (Jeffrey Richter) - это классика, это знать надо.

11. Хочу еще хардкорней
- C# Deconstructed (Mohammad Rahman) - введение в CLR, модели памяти и выполнения в CLR, байтоебство, JIT. Книга достаточно коротенькая, менее 200 страниц, можно осилить за пару дней. Желателен опыт работы WinDbg и понимание устройства PE-формата.
- Expert C# 5.0 with .NET 4.5 Framework - еще одна книга этого автора, в этот раз намного длиннее. Очень много IL, анализа и разбора стандартной либы (те же коллекции), разбор ивентов, дегегатов, асинхронности etc. на уровне байткода.
- .NET IL Assembler (Serge Lidin) - ILёбство, во многих местах повторяет документацию MSDN, но при этом имеет много интересных дополнений и заметок. Кроме того все неплохо структуировано и разложено по красивым табличкам

12. Литература по WPF
Из более-менее актуального можно выделить пару книг:
- Pro WPF 4.5 in C# (Matthew MacDonald)
- Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)

13. Литература по ASP.NET
- Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson)
- Pro ASP.NET MVC 5 Platform (Adam Freeman)
- Beginning ASP.NET for Visual Studio 2015 (William Penberthy)

14. Литература по асинхронности, параллелизму и всему такому
- Concurrency in C# Cookbook (Stephen Cleary) - книга, написанная в формате "проблема - решение". Кроме базовых вещей, вроде асинков и параллелизма рассматриваются TPL Dataflows, Rx (реактивные расширения), тестирование всего этого асинхронного добра, ну и работа этого всего на более низких уровнях абстракции
- Multithreading in C# 5.0 Cookbook - в основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная
- Pro Async_hronous Programming with .NET (Richard Blewett, Andrew Clymer) - опять же, интересного немного, но неплохие главы про асинхронность + UI и анализ дампов памяти в windbg

15. Литература не по шарпу, но так или иначе связанная с языком
C# Game Programming Cookbook for Unity 3D (Jeff W. Murray) - разработка на шарпе под Unity
Introduction to Neural Networks with C# (Jeff Heaton) - изучение нейронных сетей с примерами кода на шарпе. Под конец пишем программу для распознавания символов и нейроботов.
Machine Learning Using C# Succinctly (James D. McCaffrey) - довольная коротенькая книга на тему машинного обучения с примерами кода на C#. Ничего особого: k-средние, классификация, наивный байес, но с кодом, который всегда можно поразбирать, если что неясно.

16. Но я не знаю английский, как я буду это все читать?
На некоторые из перечисленных книг есть переводы, которые можно найти на том же рутрекере, однако, зачастую эти переводы неактальны, содержат неточности, и не самые понятные варианты перевода. Кроме того, переводы обычно пилятся только для нескольких самых популярных книг, более-менее серьёзный материал не переводят. Всегда можно сесть со словарем и понемногу читать, переводя непонятные фрагменты. Это очень полезно, так как в любом случае в разработке без знания ангельского делать нечего. Если очень хочется, то гуглить по запросам: "C# 5.0, Справочник. Полное описание языка", "C# для профессионалов. Тонкости программирования", "Программирование на платформе Microsoft .NET Framework 4.5 на языке C#"

17. Что еще нужно знать, чтобы взяли работать за еду?
- SQL - подойдет люая книг по MSSQL/MySQL, базовые запросы, SELECT, INSERT, DELETE, UPDATE. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper
- Системы контроля версий - обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote's, разрешение конфликтов, трехпанельные дифф-менеджеры, cherry-pick
- Гитхабы-гитхабчики - issues, организация пулл-реквестов, интеграция с appveyor, теги, релизы, маркдаун
- Алгоритмы - сложность алгоритмов, сортировки (пузырек, быстрая, вставками), поиск, рекурсия, алгоритмы на строках
- Структуры данных - связанные списки, деревья (бинарные, красно-черные, b-деревья), хеш-таблицы, графы
- Если идти в веб - HTML, CSS, JavaScript, веб-сокеты, REST
- Паттерны проектирования, стиль кода, внедрение зависимостей, MVVM (если хочется в WPF), SOLID

18. Я не умею читать, что посмотреть?
- Programming with C# - https://www.edx.org/course/programming-c-microsoft-dev204x-0
- Beginning Game Programming with C# - https://www.coursera.org/course/gameprogramming
- C# Fundamentals: Development for Absolute Beginners - https://goo.gl/meyyxO
- Коллекция видеоуроков, по всему дотнетовскому и смежным темам (250 часов, на русском) - https://nnm-club.me/forum/viewtopic.php?t=891636
- Набор курсов по C# от O'Reilly Media (28 часов, на английском) - http://rutracker.org/forum/viewtopic.php?t=5082978
#4 #718214
>>718208
нехуй на недоязыках писать
>>718218
67 Кб, 640x360
#5 #718218
>>718214
Да ладно, есть же Kotlin плюс как минимум две бесплатные альтернативы (от intel и oracle) robovm.
>>718223
#6 #718223
>>718218
Котлин не оч, по крайней мере в текущем состоянии.
#7 #718437
14. Литература по WCF
- Learning WCF: A Hands-on Guide (Michele Bustamante) - Хорошая книга для новичков с пошаговыми уроками по WCF.
- Programming WCF Services (Juval Lowy) - Тоже неплохая книга, но уже для более опытных веб-разработчиков
- MSDN - Всегда ваш, КЭП.

15. Литература по LINQ
- LINQ in Action (Fabrice Marguerie) - единственная, если не ошибаюсь, книга по LINQ.

16. Литература по Workflow Foundation
- Essential Windows Workflow Foundation (Dharma Shukla)
- Programming Windows Workflow Foundation (K. Scott Allen) - две лучшие книги по WF по мнению Stackoverflow

17. Литература по Windows Forms
- Программирование с использованием Microsoft Windows Forms (Чарльз Петцольд) - старая, неактуальная книга, как и сама WinForms.
- Windows Forms Programming in C# (Chris Sells)
#8 #718456
Как с ком-объектами в шарпе работать?
>>718498>>718512
#9 #718497
>>718208
Хех, невидимая рука рынка.
#10 #718498
>>718456
var Com = new Com();
#11 #718512
>>718456
вопрос больше стоит, как их правильно диспоузать
а в остальном - все как всегда
>>718521
#12 #718521
>>718512
Там много подводных камней? Просто намечается огромный проект, где будет ком на коме и меня это пугает.
>>718764
#13 #718764
>>718521
да не сказал бы. возможно, однажды тебе покажется, что ты программируешь на плюсах с шарпным синтаксисом
>>719371
#14 #719326
При lazy loading с помощью EF каждая связанная запись по одной загружается?
Например, есть отдел с коллекций работников(5 человек) помеченный как virtual
Я перебираю этих работников, к бд идет по одному селекту к каждому работнику(5 селектов) или один селект который берет всех работников в этом отделе, но это уже ж eager loading.
>>719332
#15 #719332
>>719326
если включен LazyLoading для контекста и нет фильтров для коллекции работников, происходит получение всех связанных Employee для каждого отдела
#16 #719371
>>718764
Ну спасибо, посмотрим что из этого выйдет.
>>719412
#17 #719412
>>719371
Ради интереса, для чего там ком на вашем проекте?
>>719415
#18 #719415
>>719412
Техлид умеет только в ком и хочет чтобы весь новый проект на комах был. Странно конечно, лол, но платят дохуя, поэтому я не жалуюсь
#19 #719447
Хочу сделать обработку видео потока, стоит использовать сишарп или нужно идти глубже?
>>719535
#20 #719535
>>719447
Нужно больше инфы
#21 #719779
Альтернатива try-catch?
#22 #719786
>>719779
Ее нет.
#23 #719789
Обработка хоткеев в консольном приложении не через case. Каким образом можно реализовать?
>>719879
#24 #719840
Почоны, йоба запутался полностью. Как регуляркой распарсить что-то типо
"ID:56;DATE:25.10.2017;NUMBER:00000094"
чтобы на выходе были 1)значения 2)поля?
#25 #719879
>>719789
ифами, ну
>>719932
#26 #719880
>>719840
Обязательно регулярками? Можно же сплитами, так быстрее будет.
#27 #719893
Понадобилось следить за папками чтобы автоматически обновлять бд если папку переименуют или удалять. Проблема в том папок может быть довольно много (сейчас 300), а FileSystemWatcher не может вызывать события для следящей папки, только от родительской. Т.е. от каждой директории нужно еще следить родительскую (и получать в лицо все ненужные события о том что там происходит). В общем мой вопрос, как там с производительностью будет и нет ли метода получше.
>>719898>>719924
#28 #719898
>>719893
А насколько резко реагировать нужно?
#29 #719924
>>719893
Единственная альтернатива это WinAPI:
FindFirstChangeNotification - https://msdn.microsoft.com/en-us/library/windows/desktop/aa364417(v=vs.85).aspx
ReadDirectoryChangesW - https://msdn.microsoft.com/en-us/library/windows/desktop/aa365465(v=vs.85).aspx

> как там с производительностью будет


Да хер его знает, тут 99% что тебе никто не скажет.
Сделай да замерь в профайлере.
>>720268
#30 #719930
>>719779
не провоцировать выброс исключений
>>719935
#31 #719932
>>719879
Ну это и подразумевалось в том числе. Я имею ввиду без чего-то по типу "if (xuy == 'c')". Если, например, в классе объявлена переменная, отвечающая за хоткей, то каким образом реализовать конструкцию вида "if (xuy == class.hotkey)"
#32 #719935
>>719930
Это трудновато будет, когда фреймворк то написан с исключениями.
>>719938>>719997
#33 #719938
>>719935
Чем вообще не устраивает try/cache?

Меня вот лично раздражает что исключения нельзя вернуть из таски в виде "особого" результата, как это сделано в RX.

Для одного проекта даже написал специальный класс
Optional<T> {
T result;
Exception error;
}
, но что-то тоже не зашло.
#34 #719939
>>719840
http://pastebin.ru/M0GOBCs7

но имхо регексы тут лишние, сплитов будет достаточно
#35 #719941
>>719938
в новом стандарте будет возврат нескольких значений. сейчас можно запилить через out параметры
типа
int calc(int p1, int p2, out int errorcode);
>>719947
#36 #719943
>>719938
Optional это все-таки немного другое
#37 #719945
>>719938
У таска есть же уже и result и error/exception, ти чиво?
171 Кб, 1200x900
#38 #719947
>>719941

> сейчас можно запилить через out параметры


Подожду ка я новый стандарт

> У таска есть же уже и result и error/exception


Приведи пример с async/await методом
>>719981
#39 #719952
Шарпач, помоги на асп завести телеграм бота, я нихуя не могу понять как webhook настроить и asp API. Шарп немного знаю, думал блять будет не сложнее чем БД на мускуле библу цепануть, ан нет, соснул и въехал в пня.

https://github.com/MrRoundRobin/telegram.bot.examples/blob/master/Telegram.Bot.Examples.WebHook/Program.cs

вот экземпл, что нужно куда пихать и прописывать?

PS SSL есть
#40 #719955
>>717891 (OP)
Никак не пойму, когда исполняется блок finally ?
Из-за него нужно закрывать ресурсы в двух местах ?

MemoryStream M;
try
{
M = GetStreamFromCosmos();
// что-то делаем с ним
M.Close();
}
catch { // нужен для пересоздания исключений }
finally
{
if (M != null) M.Close();
}

Так правильно?
#41 #719958
>>719955

> M.Close();


Внутри try не нужно, код внутри finally вызовется в независимости будет ошибка или нет.
>>719969
#42 #719960
>>719955
А вообще это можно переписать короче
using (var M = GetStreamFromCosmos()) {
// что-то делаем с ним
}
работает аналогично try/catch/finally
>>719969
#43 #719962
>>719955
он выполняется всегда.
суть в том что, у тебя в трай/катч может быть ретурн и если освобождение ресусров не обернуто в финали, то её придется писать 2 раза - и в катч и в трай.
что-то типо
try { m = trysomesing(); return true; }
catch { return false; }
finally { m.Close(); }
m.Close() выполнится при вызове ретурн в любом случае
>>719969>>720013
#44 #719969
>>719960
Нет, это работает как try/finally .
Блок catch нужен для пересоздания эксепшена с более высокоуровневым описанием.

>>719958
>>719962
Вот: http://pastebin.com/1kQqmAN8

Правильно?
#45 #719971
Котаны, есть какие-то годные текстовые редакторы на шарпе?
>>719977
#46 #719977
>>719971
эм? написанные на шарпе? или с подсветкой синтаксиса?
тебе для чего собсно
>>719985
#47 #719981
>>719947
try { await yoba() } catch {} же. Или у тебя там коллекция тасков?
>>719996
#48 #719985
>>719977
написанные на шарпе, да
>>719988
#50 #719996
>>719981
Ты видимо потерял суть разговора, начиналось все с вопроса

> Альтернатива try-catch?

>>719997>>720032
#51 #719997
>>719996
>>719935
адекватный код всегда написан с выбросом исключений. ну а ты делай так, чтобы они не возникали
#52 #719998
>>719988
спасибо, гляну
#53 #720013
>>719962

>catch { return false; }


Разве из catch возврат не запрещен?
>>720014
#54 #720014
>>720013
из finally запрещен
103 Кб, 640x640
6 Кб, 375x375
#55 #720018
ОБНОВЛЕННАЯ ШАПКА
{ http://pastebin.com/J3K8uers }
ОБНОВЛЕННАЯ ШАПКА
>>720020
#56 #720020
>>720018

> - http://www.java2s.com/ - Огромная база исходных кодов для изучения разных платформ, в том числе и .NET



сразу нахуй пошел
#57 #720032
>>719996
Лел, я потому и написал, что ее нет, потому что ее нет. Фреймворк написан с эксепшонами, и конструкции языка на них опираются. Конечно можно на тасках вызывать continue, и там чекать результат, но это же ебаные колбэки, я не для этого на решеточке пишу.
#58 #720048
Анон, как затолкать картинки в .ехе? Я добавлял в ресурсы, но потом из .cs кода не нашел способа установить картинку з ресурсов.
>>720051
#59 #720051
>>720048
.resx ? Гугли ResourceManager.
>>720059
#60 #720059
>>720051
Вообще к файлу resx уже прилагается статический ResourceManager с такимже именем как у файла, и у него сразу есть куча автогенереных свойств с именами всех загруженых в него ресурсов.

использование пиздец как сложно:
(Image)MyResFile.MyImage;
#61 #720122
Можно ли установить на Винду перечисленные в шапке IDE кроме Вижуалки (не ставится почему-то)? Будет ли там работать winforms?
>>720125
#62 #720123
Я конечно понимаю, что это наверное платина, но все же. Почему окно авторизации не закрывается при переходе на следующую форму? Hide, Close пробовал, и с this. и без - не выходит.
>>720125>>720736
#63 #720125
>>720122
должны. пошукай в документации

>>720123
ты об чем? давай сначала, тут не телепаты сидят
>>720127
#64 #720127
>>720125
Это без особых изъёбов делается? И вообще, какую ИДЕ поставить, чтобы попроще? А то я на сишарпе ещё не программировал.
>>720135
#65 #720135
>>720127
я бы выбрал VS Code или SharpDevelop
#66 #720224
Пытаюсь парсить сайт погоды с помощью HtmlAgilityPack. И нихуя не понятно. Точнее, раньше никогда ничего не парсил и не работал с веб вообще. А тут такая херня. Как можно нормально это сделать?
#67 #720265
>>720224
Заплатить тому, кто умеет.
#68 #720266
>>720224
Ну тип получаешь ноды, читаешь контент, заполняешь свои модели. Наверняка у сайта погоды есть апи, так что парсить вообще не нужно.
#69 #720267
>>720224

> HtmlAgilityPack


Как там в 2009?
>>720271
#70 #720268
>>719924
FileSystemWatcher - и есть обертка вокруг этих функций. Ты фактически ему предлагаешь сделать двойную работу.
#71 #720271
>>720267
А чем парсят хтмл в 2016-м?
>>720274>>720275
#72 #720274
>>720271
Регулярками конечно же! AngleSharp
>>720276
#73 #720275
>>720271
AngleSharp
#74 #720276
>>720274

>AngleSharp


В чем профит по сравнению с HtmlAgilityPack?
#75 #720278
>>720276
Тебя это ебать не должно.
#76 #720279
>>720276
The HtmlAgilityPack (HAP) is a good comparison target, since it is most used and established since a long time. Obviously AngleSharp is a great replacement for HAP due to the following reasons:

Standardized HTML5 parsing model
Much better error correction / handling
Also parses SVG / MathML elements correctly
Can handle CSS (selectors, rules, ...)
Better performance

https://github.com/AngleSharp/AngleSharp/wiki/Performance
#77 #720282
>>720276
Не еби мозг. Хочешь парсь тем, хочешь тем. Хочешь регулярками.
#78 #720668
В общем у меня есть формочка и мне нужно в отдельном потоке чтобы не блокировать формочку выполнять некий код и посылать сообщения на формочку
Форма
Класс в другом потоке, который посылает время от времени сообщения на форму

Т.е. чтобы он висел в памяти как формочка. А все примеры с потоками отсылают к выполнению просто некоего кода в потоке и блокировки. А мне не нужно мой класс блокировать (так как ему шлет сообщения другой класс), мне нужно чтобы он висел в памяти.
>>720702>>720703
32 Кб, 418x417
#79 #720702
>>720668
http://rsdn.ru/article/dotnet/CSThreading1.xml ой блять лучше бы гей-шлюхой пошел работать
34 Кб, 978x739
#80 #720703
Кажется, что-то нащупал (статью (которая в трех частях, блеат) читал, понятное дело, по диагонали). Что скажете, гуру (пикрелейтед)? Можно ли так делать? Классы действительно не могут "жить" в отдельном потоке, но что нам мешает создать класс в потоке и стопануть его...

>>720668-кун
>>720758
#81 #720705

>719939


Спасибо тебе, добрый анон. Всего тебе наилучшего :3
#82 #720736
>>720123
сам разобрался. вторую форму добавил в класс первой, поэтому и не работало
#83 #720737
Суп антуаны,
насколько нормально использовать вызов обработчика событий в таком ключе
public void EventName(Object sender, EventArgs e)
{
if (this.InvokeRequired)
{
Invoke(new Action<Object, EventArgs>(EventName), sender, e);
return;
}
... основной код метода
}

Как я понимаю, данный финт ушами проверяет потокобезопасен ли вызов обработчика и в случае необходимости вызывает его в основном потоке?
>>720968
#84 #720758
>>720703
Максимум пиздец, BackgroundWorker весь твой. Да и то может не нужен, может у тебя форма то и не будет блокироваться.
>>720781
#85 #720781
>>720758

>BackgroundWorker весь твой


Что?

>может у тебя форма то и не будет блокироваться


У меня не стоит будет ли блокироваться форма или нет, мне надо чтобы это "жило" в другом потоке.
>>720783
#86 #720783
>>720781
Раз нихуя не понятно - async/await.
>>720818
#87 #720818
>>720783
Мне не нужно получать асинхронно данные. Ты бы разобрался что к чему, прежде чем писать.
>>720823
#88 #720823
>>720818

>нужно не блокировать формочку


>не нужно получать асинхронно


А ты сегодня умный.
Ты просил в другом потоке, вот оно будет в другом потоке.
Хотя бы с тредами не пердолься, возьми таски. Про background worker так и не смог загуглить?
Отсюда кажется что решаешь проблему, которой нет.
#89 #720887
Не могу опредилиться:
SubStorageAliased & SubStorageDirectly vs
AliasedSubStorage & DirectlySubStorage

Сейчас названия просто охуенны(SubStorage и SubStorage2), но мне чому-то говорят, что я больной ублюдок.

Да и вообще с ведущими словами глобальная проблемс, что они похожие классы не наберешь по первым буквам.
>>720966
#90 #720966
>>720887
ну вроде бы как названия классов должны заканчиваться общими частями/суффиксами. типа ~Form, ~Message, ~Handler. я за второй вариант
>>720989
#91 #720968
>>720737
не финт ушами, а даже частовстречаемая конструкция. можно треды сравнивать, лол
480 Кб, 1024x768
#92 #720989
>>720966
Лол, я уже сделал первый вариант, префикс специализации хрен наберешь если забудешь, а суфикс иде подскажет. Вообще в проекте все как попало, в половине мест так, в половине по другому.

Алсо, тут посаны на стеке пишут, что в генрериках проверять тип Т зашквар, но что делать если без этого никак не обойтись? Для разных типов нужен разный код, если для каждого плодить по методу, как советуют, то у них обидно совпадают сигнатуры.
>>721009
#93 #721009
>>720989
если никак без проверки Т, то тебе дженерики не нужны. либо все сделано как-то сложна
#94 #721049
В пятницу будет собеседование на стажера с#. Что сейчас спрашивают? Ооп, многопоточность? Что по многопоточности обычно спрашивают? Синхронизацию контекстов и синхр. потоков?
>>721055>>721068
#95 #721055
>>721049
Неделю читаю про многопоточность, кучу примеров просмотрел - нихуя не понимаю, треды, таски, синк авэйт, домены, что блять, нахуя такой зоопарк наплодили хуй пойми. Документация в основе старая, каждый хвалит свою хуету. Пиздец блять.
>>721061
#96 #721061
>>721055
да, многопоточность сложная штука. Тоже плохо в этом разбираюсь, вот думаю че нить к собеседованию повторить/выучить
>>721068
#97 #721068
>>721049
Забей. Ты никогда не сможешь предсказать что у тебя спросят. Все эти подготовки с собеседованиям это как по мне хуета полная. Надо уметь делать своё дело, и если собеседующий эффективен, то он сможет это задетектить. Если нет - значит нет. Слив на собесе не всегда вина соискателя.

>>721061

>да, многопоточность сложная штука. Тоже плохо в этом разбираюсь, вот думаю че нить к собеседованию повторить/выу


Многопоточность надо на реальных задачах делать, а не просто дрочить теорию. В большинстве случаев для веб-макак достаточно знать что такое lock и всё. Для клиентсайд и этого не надо.
>>721075>>721083
#98 #721075
>>721068
я просто с многопоточностью совсем не работал. Максимум в WPF async/await простенький ебашил и на этом заканчивалось всё.

Просто вспомнить основные вещи щас хочу:
1)OOP
2)Generics
3)Interfaces&abstract classes
4)Lambda and anonymous method
5)delegates&events
6)nullable

ну а дальше что то поидее по многопоточности. Хз :/
>>721125
#99 #721083
>>721068

>Многопоточность надо на реальных задачах делать


Когда такая куча возможностей реализации многопоточности, что выбрать?
>>721125
#100 #721125
>>721075
нихуя у тебя все резво
а типы данных в дотнет? а коллекции? а сравнение? а сборка мусора?
многопоточность - это не та штука, которую надо знать (на стажера тем более) от зубов. хотя бы понимать, что такое гонка потоков, как это (для тебя - в теории) можно избежать, зачем это вообще избегать

>>721083
ну, все реализации подходят для своей ниши задач
#101 #721129
>>721125

>сравнения?

>>721136
#102 #721136
>>721129
Equals, ==, ReferenceEquals

IEquatable, IComparable
#103 #721137
>>717891 (OP)
В 15 студии запилили лябда выражения в Wathch и Value Expression?
>>721143
#104 #721143
>>721137
Да это еще в 2015 студии было
#105 #721144
>>721125
вот с LINQ ямало работал. Только простенькие запросы писал. Их форсят на собеседовании?
>>721149>>721152
#106 #721149
>>721144
Тебя вообще спросят про базы данных, джоины там и целостность данных.
>>721287
#107 #721152
>>721144
расскажешь, чем отличаются First от Single (OrDefault), считай, на половину вопросов ответил
#108 #721264
Может невнимательно читал книжку и всё объяснялось, но:
http://pastebin.com/frCivZ8P
1) Почему вся запихнута в один большой класс?
2) Нахуя нужен класс MyButtonClass? Нельзя те 4 строчки внутри мэйна написать? Что за аргумент в методе run?
>>721287>>721336
#109 #721287
>>721149
>>721264
просто показывают пример как написать кастомную кнопку, ничто не мешает тебе сделать всё в мейне.
#110 #721336
>>721264
1. что такое "вся" и где там большой класс?
2. нормальные люди не тулят все в один метод)
>>721344
#111 #721344
>>721336
Всё кроме using. Класс называется "MyButtonClass".
Кстати, что значит там : Form?

> не тулят все в один метод)


Ну блядь. Там 4 строчки. При том, что в мейне одна.
>>721347
#112 #721347
>>721344
ммм...ты, очевидно, дошел до UI-ных элементов и не знаешь, что такое Form? или ты не в курсе про синтаксис наследования?

ну, давай автор книги сочинит большую логику и напишет сотню строчек кода, дабы тебе было хорошо, что в методах не по строчке
>>721370
#113 #721370
>>721347

>ммм...ты, очевидно, дошел до UI-ных элементов и не знаешь, что такое Form? или ты не в курсе про синтаксис наследования?


да ето так

>...


Ой, это же класс конструктор, не заметил. Но вообще понятненько, типа просто так удобнее. А можно было бы и в мэйн захуярить, просто это нелогично.
#114 #721534
Сложно ли перекатиться в asp.net? Что почитать? Какую версию лучше изучать, чтобы на работу устроиться?
>>721563
#115 #721563
>>721534
если MVC, то 5-6-7. если WebAPI, то, по-моему, выше 2й версии не придцмали
если есть знания дотнета, то посмотреть понятия сессий там всяких, фильтров, бандлов, маршрутизация, DI. ну кароч

а вообще, пункт 13 шапки
#116 #721639
>>721125

>все реализации подходят для своей ниши задач


Можешь по хардкору в двух словах описать "тип -> ниша" чтобы знать куда плыть по первой и выбрать правильную реализацию?
>>721655
#117 #721655
>>721639
- асинхронные делегаты - делаем операцию с возвратом результата и важно этот результат не проебать и использовать после завершения процесса (не всегда это 100% вписывается вписывалось

- ThreadPool.QueueWorkItem, Thread.Start - выполнение операции в фоне и хуй на неё, пускай себе крутится

- Parallel, PLINQ - обработка коллекций вписывалосьбез обязательного сохранения порядка

- таймеры - цикличное выполнение кода, пока не скажут отбой

- ResetEvent - как по мне отличным примером служит управляемая постановка задач в очередь, выполнение которых происходит где-то сбоку

- BackgroundWorker - попросту говоря - операция с прогресс-баром. либо же операция, ход которой важно отслеживать в родительском объекте

async/await вбирают в себя первые три пункта в подавляющем большинстве случаев

вроде бы ничего не забыл?
>>721657>>721663
#118 #721657
>>721655
рачье, не дописал

не всегда это 100% вписывалось в задачу до появления async/await. однако возможности, которые предоставляют делегаты, нацелены на реализацию некого колбэка опосля завершения работы фоновой задачи
#119 #721663
>>721655
Parallel это TPL? Те таски и иже с ними. Просто пишу сейчас простенькое приложение, которое реализует http реквесты с сетевым устройствам, думаю что выбрать для реализации многопоточности.
>>721665
#120 #721665
>>721663

> Parallel это TPL?


Parallel это TPL

> которое реализует http реквесты с сетевым устройствам


Parallel.ForEach
или, если есть возможность использовать модные штучки
Task.WaitAll
>>721670
#121 #721670
>>721665
Спасибо за ответы, если смогу родить свою идею в виде приложения обязательно выставлю ее на всеобщее порицание. Осталось только понять, почему не работает сохранение в гитхаб.
>>721672
#122 #721672
>>721670
и так всегда, собрался мир вверх-ногами переворачивать, а сраный гитхаб все испортил
>>721676
#123 #721676
>>721672
Ну я парИнь правильный, начну с переворачивания своего манямирка.
#124 #721869
Есть UWP приложение с SQLite базой данных. С БД взаимодействую с помощью Portable Class Library for SQLite(https://sqlitepcl.codeplex.com).
Не понимаю как использовать pragma statements.
Нагуглил вопрос на SO(http://stackoverflow.com/questions/19369006) и попробовал в конструктор SQLiteConnection передать "Data Source=Sqlitedb.db;PRAGMA journal_mode=MEMORY" вместо просто "Sqlitedb.db". Получилась БД с дефолтными прагмами и стрёмным именем.
Что я делаю не так? :(
>>721870>>721984
#125 #721870
#126 #721871
>>717891 (OP)
В MS Visual Studio 2015 Community Edition в открытом проекте исчезло окно конструктора форм. Как его вернуть ?
Поиск выдаёт примерно это
http://www.cyberforum.ru/visual-studio/thread647992.html
но то, что там описано, не помогает.
>>721873
#127 #721873
>>721871
так а у тебя в чем проблема?
правой кнопкой -> Designer. есть такое?
>>722015
#128 #721984
>>721869

>Что я делаю не так?


Я ду но. :\

Ты строчку руками набрал? При копипасте из бровзера иногда захватывает левые символы.
Sage #129 #722015
>>721873
спасибо за быстрый ответ, посмотрю завтра. На другом компьютере с тем же проектом конструктор виден.
Sage #130 #722018
>>717891 (OP)
1) Как проще всего сохранить изменения конфигурации в программе ? Нужно сохранять и использовать буквально одну строку.
>>722019
Sage #131 #722019
>>722018
OS программа самая простая, один exe-файл без установщиков и прочего/
Sage #132 #722026
>>717891 (OP)
Подскажите еще, как сделать, чтобы скомпилированная для Windows (xp, 7, 8) программа работала везде без требования установить какие-нибудь библиотеки ?
>>722169
#133 #722047
Шарпаны, при попытке прибиндить двумерный массив к DataGrid'у (MVVM) студия вываливается с ошибкой.
Можете ли подсказать, как можно прибиндить массив?
>>722170
#134 #722169
>>722026
под какими-нибудь библиотеками ты же не подразумеваешь сам framework?
>>722270
#135 #722170
>>722523
#136 #722270
>>722169
Т.е. в C# Visual Studio нельзя сделать windows-программу, которая бы работала на любых компах с Windows >XP, т.е. ей обязательно NET нужен ?

Мне нужно было сделать простенькую программу с формочками на несколько операций, C# посоветовали как самое простое.. Выход только передалать под что-нибудь другое ? В C++ есть аналогичные возможности работы с формами ? Особенно перетаскивание файлов на панель интересует.

У меня c++ не установлено, создать проект и посмотреть не могу. В микрософте написано, что C++ предложат установить, когда я создам новый проект с++, но у меня выдаётся ошибка что компонентов нет и окно создание проекта открывается еще раз. Если в нём нажать далее, снова выдастся эта ошибка.
>>722275>>722428
114 Кб, 800x713
#137 #722275
>>722270
Просто установи фреймворк, который уже установлен на 7+ виндах, а хп нинужны.
>>723144
#138 #722362
Аноны, нужна срочная помощь. В общем на c# с GDI написаны примитивы. Пусть будет, допустим, обычный квадрат. Нужно сделать так, чтобы на линии появлялся круг, который движется по линиям квадрата и постепенно уменьшался. Как это сделать?
#139 #722428
>>722270
в ХР, вроде бы, 2.0 встроен. для простенького калькулятора самое оно
>>723144
#140 #722523
>>722170
Это же обычный биндинг коллекции с 2 полями.
У меня количество столбцов может быть от 6 до 30.
>>722548
#141 #722548
>>722523
чет я тупанул

ну, смотри че еще нашел
http://stackoverflow.com/questions/25266821/wpf-datagrid-binding-a-collection-property-to-column
http://stackoverflow.com/questions/24539022/how-to-bind-wpf-datagrid-to-observablecollection

или тебе прям надо object[,] засандалить в грид и ни шагу в сторону?
>>722841
#142 #722657
Ну вот, прочел я Троелсена, и что теперь дальше делать? Я знаю как программировать на C#, но не могу написать полезную программу.
Подскажите что делать?
#143 #722658
>>722657
Выпiй йаду.
#144 #722662
>>722657
Найди задачу и реши ее, если ты читал тролсена, значит делал примеры и понял их. Если ты нихуя не понял - значит ты дебил.
>>722663
#145 #722663
>>722662
Пошел нахуй

>делал примеры


Что значит делал примеры? Ты имеешь ввиду задачи? Там нет задач.
Примеры я просто переписывал и прекрасно понимал как все работает.
пошел нахуй
>>722683
#146 #722664
>>722657
давай разберем по частям, тобою написанное )) ты для себя сначала определишься, где у тебя начинают возникать сложности
>>722673
#147 #722670
позвали на собеседование, но ребяткам нужен професеонал в SignalR. опираясь на нихуевый старт инвестигейта http://www.asp.net/signalr/overview - могу сказать, что все вроде бы нисложна
знающий товарищ, опиши, какие в этой срани есть подводные камни? что из описанного в туториалах покрывает 95% задач?
>>722736
#148 #722671
Шарпач, помогай. Есть софтина на WPF, в окне контрол Image, в нем стоит биндинг с конвертером. Так вот, в этом конвертере я гружу пикчу из интернета и выкидываю контролу. Естественно мне всё это фризит гуй. Надо как-то сделать это асинхронно, но нихуя не получается. То пикча где-то теряется, хотя код выполнился, и не отображается, то еще всякая параша. Прописать у контрола UriSource не вариант. Как быть?
>>722675
#149 #722673
>>722664
У Троелсена примеры даются "исскуственые", придуманные для решения одной надуманной задачи или чтобы показать как работает та или иная функция. Эти примеры редко бывают бывают больше ста строк.

Сложности у меня возникают с написанием больших(относительно примеров Троелсена) программ. Я вообще не имею понятия как писать большую программу. Не знаю как начать писать такую программу. Мне кажется у меня просто не хватает знаний. Что мне еще прочесть или посмотреть, чтобы у меня решать хотя-бы бытовые проблемы(типа программа, заливающая картинки на какой-то ресурс или программа, которая создает раздачу на рутрекере и т.д.)?
>>722674>>722675
#150 #722674
>>722673

>чтобы у меня решать хотя-бы бытовые проблемы


чтобы у меня получалось решать*
>>722675
#151 #722675
>>722671
асинхронно загружай контент, колбэком в UIControl.Dispatcher.Invoke тыкай загруженное
https://msdn.microsoft.com/en-us/library/ms144196(v=vs.110).aspx

>>722673
>>722674
static void Main() { new GovnoApp().Start(); }
начни с этого. а там все как-то само загрутится, знаешь ли. боишься наговнокодить? ну, тогда хуй ты что напишешь
>>722679
#152 #722679
>>722675

> колбэком


Бля, а что делать, если начнет грузится другая пикча и догрузится раньше?
>>722685>>722687
#153 #722683
>>722663
Пиздец ты мусор, иди крутить гайки если ты даже не понимаешь зачем ты выучил инструмент.
>>722691
#154 #722685
>>722679
што
у тебя происходит одновременный спам по нескольким картинкам в один контрол?
>>722696
#155 #722687
>>722679
блокируй обращение потоков к ней, чтобы работали по очереди
#156 #722691
>>722683
Пруфы маня
>>722694
#157 #722694
>>722691

>Пруфы маня


Ты тредом не ошибся, болезненный? Пруфы чего тебе?
>>722701
#158 #722696
>>722685
Ну я нажал на ссылку, она грузится вплоть до 15 секунд, там пикчи по 5 метров бывают, за это время я успею еще 10 раз по другим прожать и все грузятся в один контрол. Сам контрол при загрузке через UriSource при смене Uri сразу начинает что надо грузить, а тут говно какое-то получится.
>>722698>>722700
#160 #722699
>>722698
Бля, ну нахуй ты это принёс? Попробуй в конвертере так сделать.
#161 #722700
>>722696
я вообще нихуя не понял, как должно происходить в идеале? ты клацнул на картинку, она многометровая и долго грузится, в единственный контрол (!) да, ты перешел к другой картинке, клацаешь на нее. и шо блять тут должно произойти?
>>722702
#162 #722701
>>722694
С чего ты решил, что я не понимаю зачем я выучил инструмент? Откуда вообще взялась эта немотивированная агрессия? Часто тебя в школе одноклассники дразнили? Девушки возбуждаются, когда узнают, что ты всегда знаешь зачем учишь инструменты?
>>722707
#163 #722702
>>722700

> и шо блять тут должно произойти?


Сразу начинает грузится другая. При сраных колбэках такого не будет.
>>722708
#164 #722707
>>722701

>я не понимаю зачем я выучил инструмент


>не могу написать полезную программу


>отсутствие технической фантазии


check

>немотивированная агрессия


>путать агрессию с пренебрежением в 2016


check

>попытка психоанализа по посту в интернете


check

Human trash as is.
>>722713
#165 #722708
>>722702
ну будет, ачо нет?
для этого надо отменить скачивание как минимум, это да
http://stackoverflow.com/questions/10332506/aborting-a-webclient-downloadfileasync-operation
40 Кб, 495x441
#166 #722713
>>722707
Ебать у тебя бомбануло, школьник.
>>722715
#167 #722715
>>722713
Это троллинг тупостью?
>>722722
#168 #722722
>>722715

>маааа, у меня бомбануло

#169 #722736
>>722670
бамп
#170 #722841
>>722548

>или тебе прям надо object[,] засандалить в грид и ни шагу в сторону?


Да вот не знаю как лучше

У меня в основном операции с массивами (вычисления), а результат надо отобразить в гриде

Что-то вроде такого:
http://pastebin.com/C6GHsCf0
Сборка мусора, Finalize() и Dispose() #171 #722895
Аноны, поясните за тему рилейтед.
1. Почему непредсказуемая работа сборщика мусора является проблемой, и что вообще делает мусорщик? Как я понял, после выхода из конкретного блока, из стека удаляются переменные по значению, а из кучи удаляются ссылки на объекты/ссылочные типы, но сами объекты остаются в куче? Но разве память при этом считается занятой? Какой алгоритм использования памяти в куче у дотнетовских языков? Разве нельзя просто хуярить в область памяти объекты по новой, если на них не ссылается ни одна ссылочная переменная? Или слишком заёбно проверять каждую область памяти, ссылается ли на неё что нибудь или нет, поэтому, шобы не ебать мозги, пишется в чистую область?
2 В чём разница между Finalize() от Object'a и Dispose() из IDisposable()? Они оба очищают только неуправляемые ресурсы? То есть, нет особого смысла реализовывать IDisposable для класса, в котором не используются неуправляемые ресурсы типа указателей? Или кто нибудь из них всё таки очищает данные об объекте в куче?

позязя не шлите в гугол, сам ищу ответы на свои вопросы параллельно, но хотелось бы из первых уст ответы прочесть.
#172 #722914
>>722895
1. разве работа сборщика непредсказуема? шо правда?

> из кучи удаляются ссылки на объекты/ссылочные типы, но сами объекты остаются в куче


определись, удаляется у тебя че-то из кучи, или не удаляется ничего там не удаляется

> Разве нельзя просто хуярить в область памяти объекты по новой, если на них не ссылается ни одна ссылочная переменная?


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

> Какой алгоритм использования памяти в куче у дотнетовских языков?


я, наверное, вопрос не понял. каков алгоритм чего, поиска для очистки сборщика?

2. сам осилишь?
https://msdn.microsoft.com/en-us/library/system.object.finalize(v=vs.110).aspx
>>722965>>722995
#173 #722926
>>722895

>что вообще делает мусорщик


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

>из стека удаляются переменные по значению


Из стёка вообще нихуя не удаляется. Тебе, как дотнет макаке это знать не обязательно, но из стёка обычно вообще нихуя не удаляется - при выходе из скопа просто возвращается указатель на прошлый участок стёка. Поэтому стёк считается небезопасным, страдает переполнениями и есть вероятность получить мусор.

>а из кучи удаляются ссылки на объекты/ссылочные типы, но сами объекты остаются в куче


Сука, что у тебя вообще в голове? Объекты в куче как раз таки чистятся полноценно (хотя это уже зависит от конкретного системного рантайма - в целях оптимизации не все зануляют память и так же попадается мусор).

>шобы не ебать мозги, пишется в чистую область?


Ебааааать ты шизик. Ты сам того не понял, но боишься фрагментации памяти не зная о ней, лел. Расслабь булки - в дотнете присутствуют дефрагментирующий алгоритм работы с памятью, который легко и просто настраивается.
#174 #722965
>>722914

>разве работа сборщика непредсказуема?


Наверно он имел ввиду что порядок вызовов Dispose/Finalize неопределен и как в крестах надеться на правильную последовательность освобождени ресурсов нельзя.
#175 #722978
>>722895
Вот соседняя ссылка: https://msdn.microsoft.com/en-us/library/b1yfkh5e(v=vs.110).aspx
Делай так и не парься за память.
#176 #722995
>>722914

>1. разве работа сборщика непредсказуема?


Да. Непредсказуемо когда он будет вызван, сколько времени отработает (и насколько всё подвиснет) и как отработает (сколько памяти освободит).
#177 #723014
А тут есть тре
#178 #723026
бушет
#179 #723144
>>722428
>>722275
Спасибо, так и сделаю, наверное, фиг с ним с XP. Какую версию NET минимально надо выбрать для Windows 7 ?
>>723149
#180 #723149
>>723144
W7 - .net 3.5
W8+ - 4.5+
Пиши на .net 4+, а то 3.5 уж больно старый.
>>723286
#181 #723286
>>723149
в 3.5 есть все, что надо
#182 #723290
>>723286
Щас бы async/await.
>>723292>>723418
#183 #723292
>>723290
с нулл-кондишном
#184 #723298
>>723286
Щас бы dynamic.
>>723305
#185 #723305
>>723298
Поясните за плюсы динамической типизации? Вроде как от этого производительность страдает все дела.
>>723306>>723319
#187 #723319
>>723305
Там где боксится любой тип. А тебе, к примеру, нужно передавать куда-то конкретный тип (а не object).
#188 #723396
В чем разница между асинхронным выполнением и параллельным, словами для обывателя?
>>723402
#189 #723402
>>723396
Асинхронное:
"Выполни пожалуйста работу, как закончишь - сообщи мне, а я пока своими делами займусь".

Параллельное:
"Ребят, вот вам работа, я поделил её поровну между вами. Приступайте, я жду."
>>723407
#190 #723407
>>723402
Блять, твоего объяснения я ждал столетие.
А как через async/await заставить поток сообщать в основной поток свое состояние с возможностью доступа к элементам управления (граф. интерфейс)?
>>723420
#191 #723416
>>723286
Лол, всегда проигрываю с таких питухов. Как добавили два сахарка в язык так им резко всем понадобилась ассинхроность и все затопило сатьями "как мы все перtписали заново? но с модной фишечкой".
Тащемта в 3.5 нете для ассинхроности уже все есть, тем кто надо просто брал и пользовался.

Пруфит: https://msdn.microsoft.com/ru-ru/library/2e08f6yc(v=vs.90).aspx
>>723418>>723427
#192 #723418
>>723416
Промахнулся от багета. Это тебе >>723290
>>723427
#193 #723420
>>723407
Как будто у тебя нет второго потока.

try
{
//Это граф. интерфейс
Busy.IsBusy = true;

using (Client c = new Client())
//Это граф. интерфейс
dataGrid.ItemSource = await c.Method(...);
}
catch (Exception ex)
{
//Это плюёт в поток граф. интерфейса
ErrorMessageBox.Show(ex.Message);
}
finally
{
//Это граф. интерфейс
Busy.IsBusy = false;
}
>>723497
#195 #723497
>>723420
А где сам асинхронный вызов? Просто я что-то не понял как он вызывает код в основном потоке.
>>723511
#196 #723511
>>723497
//WCF асинхронный метод
await c.MethodAsync(...);

//или через Task (void)
await Task.Factory.StartNew(() => { /РАБОТА/ });

//с результатом выполнения
int result = await Task<int>.Factory.StartNew(() => { return 1;});
#197 #723639
http://pastebin.com/kdPwqy8f

Эта строка объявления выполняет три функции. Во-первых, объявляется переменная myinfo, относящаяся к типу класса InfoUser. Сама эта переменная не является объектом, а лишь переменной, которая может ссылаться на объект. Во-вторых, создается конкретная, физическая, копия объекта. Это делается с помощью оператора new. И наконец, переменной myinfo присваивается ссылка на данный объект. Таким образом, после выполнения анализируемой строки объявленная переменная myinfo ссылается на объект типа InfoUser.

Оператор new динамически (т.е. во время выполнения) распределяет память для объекта и возвращает ссылку на него, которая затем сохраняется в переменной. Следовательно, в C# для объектов всех классов должна быть динамически распределена память.
>>723641
#198 #723641
>>723639

> Во-вторых, создается конкретная, физическая, копия объекта. Это делается с помощью оператора new.



разве?
#199 #723718
Есть два стула приложения на C# - служба (windows service, для службы был указан Account LocalSystem) и клиентское приложение(обычное windows приложение, в данном случае консольное), которые обмениваются информацией по именованным каналам (Named Pipes). Проблема в том, что клиентское приложение может подключиться к службе по именованному каналу только с правами администратора.

Нашёл в сети решение, в котором предлагается назначить серверному именованному каналу PipeSecurity, содержащий один или более PipeAccessRule. После применения этого подхода серверное приложение падает с исключением System.UnauthorizedAccessException. Подскажите, как по именованному каналу осуществить подключение к службе клиентского приложения, которое запущено без прав админа? Делаю так:

Windows Service:
http://pastebin.com/B1QvFcVU

Клиент:
http://pastebin.com/g6a3CPPH

Пробовал также в коде службы WindowsIdentity.GetCurrent().Name менять на "Everyone", но в этом случае исключение System.Security.Principal.IdentityNotMappedException.

Пробовал передать в PipeAccessRule вместо первого параметра выражение new SecurityIdentifier(WellKnownSidType.WorldSid, null)

Да и остальные способы из гугла пробовал, поэтому сращиваю вашего совета.
>>726103
#200 #723782
Поясните, почему нельзя передавать по ссылке контролы окна в другой класс?
>>723787
#201 #723787
>>723782
Почему ты решил что нельзя? Самый обычный говнокод получится.
>>723792
#202 #723792
>>723787
И почему это говнокодом будет?
>>723797>>723875
#203 #723797
>>723792
Потому что когда у тебя появится баг связанный с контролом тебе прийдеться лазить по всему проекту выискивая места где ты этот контрол дергаешь, вместо того чтобы открыть один класс и посмотреть.
>>723801
#204 #723801
>>723797
Но ведь студия показывает, где я эту ссылку использую. И вообще, как правильно тогда подобную функциональность реализовывать?
>>723875
#205 #723875
>>723792
welcome to SOLID. UI должен оставаться UIем, любой другой пиздокласс не должен знать подробности реализации (структуру) формы, даже если взаимодействует с ней как-то напрямую

>>723801
что тебе конкретно надо? можно использовать принцип, заложенный в связывании (binding). один объект (UI) сигнализирует какому-то другому (ViewModel) об изменении состояния чего-то. либо через наблюдателя.
>>723923
#206 #723923
>>723875

> что тебе конкретно надо?


Чтение/изменение свойств контрола окна из другого класса. Как правильнее такое реализовать?
>>723924
#207 #723924
>>723923
WPF и MVVM
middle .net #208 #723932
ребятки, какими вы (ваша сраная кошка фирма) видит требования в области дотнета и около ее для сабжекандидатов?
>>726104
#209 #723934
Кто-нибудь на GTK или ETO пистал UI? Как оно, аналога WPF для линупса нету, а писать что-то не консольное надо. Поглядываю на XWT, но он в глубокой разработке.
#210 #724349
Я конечно понимаю, что я слоупок, но для тех кто не видел https://channel9.msdn.com/Events/Build/2016/B806 рекомендую посмотреть как дебажить в VS и не заебаться, может что нибудь новое для себя узнаете
>>724352
#211 #724352
>>724349
Ты бы лучше скинул "как дебажить .net приложения в VS Code".

Там (после опыта использования обычной студии) вообще не понятно как запустить в дебаге.
>>724355
#212 #724355
>>724352

>We support debugging of C# apps cross-platform via Mono


>VS Code Mono debugging integration comes from the 'Mono Debug' extension on the Visual Studio Marketplace.


>If you want the best possible experience for those projects and development on Windows in general, we recommend you use Visual Studio Community



Ну ты понел, сначала надо немношк поебаться
#213 #724804
Устроился на свою первую работу, посадили фиксить баги.
Понял что я не умею пользоваться дебагером, потому что никогда не работал с большими проектами.
Поясните, пожалуйста
Вот, например, выскакивает меседжбокс или выгружаются записи в гридвью где-то
Как определить где это?
Когда просто брейк нажимаешь оно стопает уже после того как все появилось/загрузилось, в коллстэкэ отображаются только вызовы методов в гуи тредах
Есть еще в интелтрейсе опция, чтобы отображать все методы, которые были вызваны, но тогда оно минут 10 доходит до нужного места и дамп вызовов занимает 600 метров.
Я только в лоб вариант нашел, писать поиск по всему солюшену сообщение в меседжбоксе, находится где это храниться в хмл ресурсах, определение айдишника этого ресурса и потом находишь где он в коде используется и ставишь там брейкпойнт. Тогда в коллстеке еще не пропадают вызовы которые мне нужны.
>>724808>>732423
#214 #724808
>>724804
Найди компонент который сообщение то показывает и смотри как он работает, там же и красные кругляши ставить будешь
>>734348
86 Кб, 794x704
#215 #725416
Парни, вот у меня странный вопрос. На шарпе пишу свой быдлокод, и вот у меня интерес появился к школо крекерству. Вообще это кому-нибудь нужно? Разбираться в байт-коде. И если я с этим разберусь смогу ли я крякать майкрософтовские продукты под .NET?
>>725431>>725460
#216 #725431
>>725416
Сможешь, я этим давно занимаюсь. Но вот заработать на этом вряд ли удастся.
>>725452
#217 #725452
>>725431
Что тебе для этого потребовалось изучить, кроме очевидного IL/MSIL?
#218 #725460
>>725416
Можешь взять очевидный деобфускатор вроде de4dot и какой-нибудь анпакер и крякать все что движется прямо сейчас с ILSpy, без знания MSIL
0 Кб, 133x79
#219 #725518
Шарпач, что за пиздень появилась у меня после установки второго апдейта 2015 студии? Как убрать?
>>725521>>726614
#220 #725521
>>725518
как вас не выворачивает от темной темы студии?
>>725528>>725599
#221 #725528
>>725521
Где вы покупаете новые глаза после светлой темы?
>>725534
#222 #725534
>>725528
моя не знать, по светлой мне наоборот менее болезненно глазами пробегать
ну, естественно, я сижу не в темноте
#223 #725599
>>725521
Глупая мода.
#224 #725618
Что лучше использовать на небольших проектах - Prism или Caliburn.Micro?
#225 #726097
Посоны, почему нет visual studio 2015 экспресс в iso, а только онлайн установщик, где образ скачать?
#226 #726103
>>723718
Сделай обмен через MemoryMappedFiles.
Если не можешь менять тип обмена данных, то хуй его знает, я с Named Pipes никогда не работал.
>>726149
#227 #726104
>>723932
Уметь разбираться в любом говне, писать алгоритмы, знать язык и основы сраного фреймворка.
>>726122
#228 #726122
>>726104
как-то слишком обобщенно
#229 #726149
>>726103
Уже неактуально, разобрался.
#230 #726302
Как в шарпе создавать переменные с именами, определяемыми извне? То есть я хочу создать переменную с именем, которое вводится с клавиатуры, например, это вообще возможно?
Как-то можно распарсить имена объектов WFP? Если имя кнопочки такое-то, то делать-то и так далее.
>>726307
#231 #726307
>>726302
1. создавай словарь <string, object>

2. https://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.logicalchildren(v=vs.110).aspx
так, наверное
(collection).Cast(FramewworkElement).Select(e=>e.Name)
>>726309
#232 #726309
>>726307
Спасибо!
#233 #726614
>>725518
а где ты это, кстати, нашел? на впфах каких-нибудь? я прост не вижу
#234 #726696
пацаны, я хер знает куда идти, т.к пишу на шарпе, припёрся сюда. Нужен в ргб палитре цвет ржавчины(пиздецки старой). Всё гугление и юзание пипетки в браузере привело лишь к появлению в моей проге нахуй не нужонного апельсинового цвета. Выручайте, аноны
>>726702
#236 #726703
>>726702
чё за говно, иди нахуй с ним.
>>726708
#237 #726708
>>726703
какой-то агрессивный дятел
#238 #726709
>>726702
Чуть светлее нужен бы, оксид железа, как на Марсе тип.
P.s. Агр не я был
116 Кб, 225x246
#239 #726713
>>726702
Вроде такого
>>726984>>727438
#240 #726984
>>727288
#241 #727117
Нэтаны, тут кто нибудь на F# что-то пишет? Есть будущее у языка? Я вот захотел попердолиться с функциональщиной, теперь собираюсь кусок бизнес логики переписать на нём, будет красивее. Имеет ли смысл дрочить это язык кроме как для своих васяноподелок?
>>727286>>727314
#242 #727286
>>727117
хуй его.. но функционалки набирают обороты это однозначно (у нас, к примеру, в конторе банке типочки целую систему нахуярили на эрланге, все пользуются и продают даже). Я решил все-таки подрочить книженцию одну по F#.. посмотрим что выйдет
#243 #727288
>>726984
Премного обязан, чувак
#244 #727314
>>727117
>>727117
Я перед увольнением утилиту на фа-диезе сделал, у лида пригорело)
#245 #727438
>>726713
Больше похоже на цвет нездорового говна.
>>727447
#246 #727447
>>727438
у меня, когда шаурма не зашла, такое же
#247 #727589
>>719779
ифы
88 Кб, 694x960
#248 #728179
Программач,
Пару тредов назад я задал вопрос по
а именно, зачем такое надо:
http://pastebin.com/PRJAgmbs

Так как я нуб, то и вопрос задал не правильный, меня на самом деле интересовало КАК такое возможно.
Я спросил как это гуглить и вообще как это работает.
Искал довольно долго, но оказалось что все очень просто - polygon переменная ссылочного типа, она содержит ссылку на объект. Я вначале это пропустил.

Теперь, когда я понял этот прикол досканально, изучение пойдет гораздо бодрее!

Спасибо всем тогда мне ответившим, вы мне реально помогли! Спасибо анон!
#249 #728187
Шарподебилы плиз заберите к себе всех нубасов которые решили вкатиться в прогромирование.
>>728195
#250 #728195
>>728187
Лол нет, пускай питон и джаву ебашат.
>>728197
#251 #728197
>>728195
Ну плис.
Я даже соглашусь что шарп лучший язык эвер.
Только повесьте шапку или банер - шарп лучшее для быстрого заработка денег програмингом или еще что
>>728200
#252 #728200
>>728197
А ты за джаву или питон топишь?
>>728202
#253 #728202
>>728200
Я не топлю. Я работаю энтерпрайз макакой.
И меня заебало что половина любого треда состоят из. Посоны почитал. Шилдта как рубить теперь бабки. Посоны какой учебник взять. Посоны я нихуя не понял. Посоны как стать успешной жабамакакой. И так далее.
>>728235
#254 #728235
>>728202
а тут тип нет такого, да?
>>728236
#255 #728236
>>728235
Ну и заберите их всех себе их себе. Позязя.
#256 #728246
Платиновый вопрос, наверное, но не совсем стандартный:
Хочу запилить простецкую игрульку на шарпах (для обучения, не для коммерции). Использование для этого WinForms(был опыт по школе) - мазохизм и нахуй надо? Или сразу катиться в Юнити с его скриптами на шарпе и окунаться с головой в неизвестное?
#257 #728279
>>728246
Что за игруля хоть решил? Скорее всего да, юнити, но некоторым хватает cli.
>>728300
#258 #728288
>>728246
простецкая - это типа пасьянс?
>>728300
#259 #728300
>>728288
>>728279
Да не, что-то вроде рпг/экономического симулятора на кнопках/пикбоксах с гринданом и дрочем.
>>728304
#260 #728304
>>728300

> рпг/экономического симулятора


я хз, если это лайт-версия космических рейнджеров без наземных битв и полетов, то можно прикольнуться на WPF. ну а если у тебя стоит на юнити и хочется чисто-конкретно написать что-то этакое, то копай туда
#261 #728376
>>728246
Зависит от уровня экшона. Если нужно перерисовывать игру 30-60 раз в секунду, то таки да, катись в юните или на любую обертку над дх/огл, иначе хватит обычных винформ с их перерисовкой по требованию ирока, но с максимальным ограничением 1-2 кадра в секунду. Короч, последнее подходит для простых пошаговых игрулек.
#262 #728399
Шарпач, чтобы усвоить базовые возможности языка требуется много писать кода, я это прекрасно понимаю. Но моя фантазия хочет чего-то большого, при построении которого я упираюсь в непонимание, как лучше всего это реализовать. Существует ли какой сборник задач по С#? Порылся на twirpx, ничего толкового не нашел. На гитхабе в 90% проекты уже сделаны, их или допиливать до снижения кол-ва багов -> 0 или рефакторить, а как, новичек не знает, а ментора нету чтобы подсказал. Есть у питона сервис, где нету теории но множество задач с подсказками, что лучше использовать. Есть аналог для С# или попробовать адаптировать задачи из него для себя?
#263 #728420
>>728399
http://www.ex.ua/72463209
но не знаю, не обмазывался, не заглядывал. но книга лежит с самого начала моего знакомства с сешарпом
#264 #728471
>>732706
#265 #728558
Что юзать - Repository для каждой сущности или дженерик репозиторий? Нужен ли unit-of-work?
Или в мвс 5 все это нахуй выкинуть и юзать model binding, который я пока не пойму никак
>>728562>>728581
#266 #728562
>>728558
применение UoW и model binding зависит от масштабов твоего говнопроекта

если выбирать тут "Repository для каждой сущности или дженерик репозиторий", то конечно Repository<T>
#267 #728581
>>728558
Мне вообще здесь пояснили что репозиторий это устаревшее говно и нахуй не надо.
>>728585
#268 #728585
>>728581
А что вместо него надо?
Как без него юнит-тесты пилить и вот это все?
>>728601
#269 #728601
>>728585
EntityFramework

В EF 7.0 появился Memory Provider, как раз для юнит-тестов
>>728602
#270 #728602
>>728601
ef7 уже вышел?
>>728606
#271 #728606
>>728602
Ой блин забыл, сейчас он называется EF Core 1.0

Пока RC1 вышел, там точно есть поддержка:
1) Memory
2) MS SQL Server (тестировал на винде)
3) Posterger (тестировал на убунте)
4) Sqlite (тестировал на убунте)
>>728611
#272 #728611
>>728606
Это, конечно, здорово, но в контексте EF5-6 и MVC5 таки оборачивать DbContext в репозитории и UoW или можно как-то проще?
Просто, DbContext - это уже сам по себе ЮоВ, и в нем есть репозитории, и оборачивать подобное в подобное мне не кажется хорошей идеей, но уровень абстракции, чувствую, какой-то нужен, хотя бы для юнит-тестов или чтобы поменять потом EF можно было на что-то другое
Хотя я ей-богу, не могу представить сценария, в котором будет необходимость последнего

Короче, я запутался немного, разъясните за щеку, пожалуйста
#273 #728627
Шарпач, поясни за String.Format
Нужно запилить таймер в формате (Х дней Х часов Х минут)
Можно так сделать через формат? Мануалы читал, но так и не понял как это реализовать.
>>728628
#274 #728628
>>728695
#275 #728655
Посоны, есть io bound метод, их много и нужно выполнить их параллельно. Если я просто их заверну в таски, это ведь не очень выйдет? Планировщик поставит их в очередь и возможно выполнятся они последовательно, а мне нужно чтоб прям здесь и сейчас. Есть async аналоги этих методов и события их выполнения, они то ведь сразу начнут выполнятся? Если уже эти пары завернуть в таски получу ли я что нибудь полезное?
>>728664>>728668
#276 #728664
>>728655
асинхронные делегаты с коллбэками
#277 #728668
>>728655
и вдогонку, я не уверен, что io операции в тасках будут схуято выполняться последовательно
#278 #728695
>>728628
Уже три таких прочитал. Но нихуя не выходит. Сплошные исключения сыпятся.

ts.ToString("%h hours %m minutes") - что тут не так?
>>728819
#279 #728819
>>728695
похоже, у этой хуиты проблемы с пробелами. попробуй через string.Format("{0:%h}...", ts)
1763 Кб, 3264x2448
2399 Кб, 3264x2448
1428 Кб, 3264x2448
#280 #729121
Решите пожалуйста, у нас начали преподавать с#, а я в программирование нуль и не понимаю ничего.
>>729132>>729146
38 Кб, 585x369
#281 #729132
>>729133
#282 #729133
>>729132
выбора особо не остаётся, сама не могу разобраться
>>729136
#283 #729136
>>729133

>не могу разобраться


Не можешь разобраться с чем: C# или задачами?
>>729147
#284 #729146
>>729121
В этих задачах не программировать нужно уметь, а математику знать. Программирования тут и на базовом уровне аля C# за 2 часа хватит.
#285 #729147
>>729136
Задачи понимаю, не знаю, как написать, весь код в одну систему сложить чтобы работала программа.
>>729153>>729188
#286 #729153
>>729147
Сиськи с супом /pr/ и мы подумаем.
#287 #729188
>>729147
ну ты пробуй, авось что-то получится, а мы подправим, есишо
но товарищ выше прав, черт возьми
>>729206>>729220
284 Кб, 1789x749
#288 #729197
обоссы меня господь
171 Кб, 1138x297
#289 #729206
>>729188
Так она не хочет думать, она хочет чтобы за неё подумали мы пока она пососет ашоту за гаражами. Типичная тня короче.
>>729220>>729347
sage #290 #729220
>>729206 >>729188
Вы блять серьезно? Это же просто зеленый, который решил развести спермотоксикозников.
>>729347
#291 #729238
Ананасы, помогите с EventAggregator в Prism. Как выполнить событие в текущем потоке? Он на выбор даёт фоновый/отправителя/UI, а если я пытаюсь получить событие в другом потоке, то начинается какая-то необъяснимая хуйня, код начинает жить своей жизнью. У UI есть Invoke, а как у себя в классе такое сделать?
>>729347
#292 #729347
>>729206
>>729220
чи не похуй? типа я бросился решать это говно

>>729238
ты чтили вообще в каком-то третьем потоке находишься? какие-то макароны
#293 #729482
Анон, нужно допилить прогу на шарпе для курсовой, но в программировании я не очень. Подскажи годный ресурс где можно заказать прогу.
#294 #729494
>>729482
Очевидный 2ch.ru
fl.ru, сообщества vk.com
#295 #729574
>>729482
Закажи у меня. Что сделать надо?
>>729979
#296 #729640
Есть нормальные видеокурсы по mvc5?
>>729641
#297 #729641
>>729640
на pluralslight
61 Кб, 625x477
#298 #729954
Какой-то убогий стал шарпотред. Уровень дискуссии на нуле. Вы не ахуели тут? Даже ньюфагам через раз отвечаете. Захожу раз в месяц вас проверить и с каждым разом все унылее.
#299 #729979
>>729482
>>729574
Але, братюнь. Скажи, что запилить надо? Я сам нюфаг, потренироваться охота.
>>730054
63 Кб, 600x435
#300 #730007
>>729954

> ньюфагам через раз отвечаете


Нюфаги иду нахуй ты тоже
97 Кб, 600x634
#301 #730036
>>729954
Не вижу твоего клоунского колпака. Зажог бы тред если так редко заходишь.

Прост в начале треда надо задачки вбрасывать уровня спец-олимпиады, хоть обоссать будет что.
#302 #730054
>>729979
Сайт для генерации комиксов asp.net mvc.
>>730218
79 Кб, 500x375
#303 #730072
А мне нравится шарп, антуанетты. Я писал на спектрумовском бейсике, асме Z80, Delphi, и потом перешел на шарп. Это охуенный язык, хотя есть и спорные вещи, но с моими задачами они не проявляются.
Охуенные дженерики, охуенные атрибуты, охуенный LINQ, охуенные ламбада-выражения, охуенное отсутствие заголовочных файлов, охуенное отсутствие секции предварительных объявлений, охуенная возможность писать функции в произвольном порядке, охуенная студия с охуенной подсветкой и охуенной автоиндентацией, охуенная коммьюнити, охуенная библиотека в охуенном стиле охуенного ООП.
Я пишу на шарпе уже 7 лет почти (пиздец как быстро время пролетело, даже на ебаном Delphi я писал всего 6 лет, а кажется будто чуть ли не вечность) и до сих пор тащусь от этого языка. Я его сам выбирал, сравнивал разные языки и шарп как был охуенным, так им и остается.
>>730099
#304 #730096
>>729954
значца, сделал у нас лид девелопер "решение", позволяющее отвязаться от ссылки на EF в запускаемом веб-проекте путем добавления несложного уровня абстракции и, главное, полным отделением проекта DAL.EF от чего бы то ни было. при этом, дабы естественно, оно все работало, post-build ивентом библиотеки данного проекта вкупе с либами еф копируются в bin веба

на вопрос зачем так, ответ был, как я указал, отсутствие ссылки на еф в главном проекте

на вложенный вопрос нахуя (ссылка есть не просит, дополнительного функционала и неудобств особо не приносит, просто будучи включенной), ответил вотшто: это во-первых круто, мол, отвязываться от конкретных источников данных. также во-вторых сильно уменьшает количество проблем если проект внезапно соскочит на другую орм или (!) на другую субд (не реляционную). ну а -третьих, мол, микрософт так советуют делать, все пошли и я пошел

возникает у меня вдогонку три вопроса к вам человекам:
1 адекватный ли это подход (в целом, включая механизм внедрения библиотек)
2 наличие целого слоя абстракции источника данных - это недостаточный способ отвязать приложения от всего начиная от механизма получения данных, заканчивая субд?
3 разве это не пиздец, если ты вдруг начинаешь переориентировать проект на другой по механизму источник данных? во-первых переход хотя бы от ms к mysql уже создает проблем, не считая замену рсубд<->графы<->досубд
4
>>730104>>731782
#305 #730099
>>730072
шарп не был таким и охуенным, но он им заслуженно стал
>>730151
#306 #730104
>>730096
а 4 не придумал, да
112 Кб, 1024x576
#307 #730151
>>730320
#308 #730218
>>730054
Не, я слишком нюфаня для такого.
#309 #730320
>>730151
ну серьезно ж, дотнет до 3.5, нф до 5, веб-формы, мвс до 3, впф - это ж все лютый пиздец
>>730346
#310 #730346
>>730320

> ef до 5 *

#311 #730488
Господа, как лучше всего обновить ComboBox при выборе пункта из него? Использую WPF, склоняюсь к DropDown, но как из обработчика события изменить Items?
>>730490
#312 #730490
>>730488
использует WPF, но не пользуется байндингом
>>730494
#313 #730494
>>730490
Список получается от статического метода, я слишком нюфана чтобы уметь биндить такое.
>>730497
#314 #730497
>>730494
view model влияет на view, model влияет на view model. не знаю насколько статический метод в твоем случае - разумный выбор, но раз уж так, то пускай будет так
>>730498
#315 #730498
>>730497
заебись, чотко. только я пишу без использования mvvp тк у меня простенькое приложение и такая монструозность пока ни к чему.
>>730500
#316 #730500
>>730498
ну тогда

componentName.EventName += (s,e) => otherComponentName.Items.Add/Remove/Clear
#317 #730521
Как насчет сделать джаберовскую конфу этого треда?
>>730524>>730570
#318 #730524
>>730521
ты разрешения спрашиваешь? делай
>>730525
#319 #730525
>>730524
Я вношу предложение, и лучше делать ОПу этого треда, что бы без проблем в шапку добавлять.
>>730614
#320 #730570
>>730521

>джаберовскую


Как там в 2008-ом?
>>730571
#321 #730571
>>730570
можно по фану в мирке еще скооперироваться. а там, глядишь, фидо поднимем
#322 #730614
>>730525
Нахуй пошел, вместе со своим конфочками

OP
#323 #730749
Шарпач, раньше создавал кастомную команду и биндил её таким образом:
http://pastebin.com/EhBZK61T
Сколько не пытался, не получается прибиндить (MVVM).
Подскажите, как прибиндить её, используя MVVM?
>>730802
#324 #730802
>>730749
Command="{Binding local:HuiPizda}"
>>730804>>730867
#325 #730804
>>730802
эту команду, помимо всего прочего, нужно всунуть во вью-модел класс, а экземпляр класса сделать DataContext окна (компонента)
>>730867
#326 #730867
>>730802

>Command="{Binding local:HuiPizda}"


>>730804

>нужно всунуть во вью-модел класс


RelayCommand?
Если в Executed, то ошибка.

Мозг уже кипит...
Исходник прилагаю.
http://rghost.net/7RmRClmsG
>>731081
#327 #731081
>>730867
а по какому событию у тебя должна вызываться твоя команда? ты её повесил ниначто
>>731084>>731269
#328 #731084
>>731081
соответственно и вешать студия предлагает её на DependencyObject
>>731269
#329 #731117
Может я сейчас платину задам, может меня отправят на хуй читать шапку, но имею один вопрос. Хочу вкатиться в ASP.NET, в 2016 вообще имеет смысл? Джуниоров вообще берут легко? С чего начинать если опыта в программировании практически нет?
>>731144>>731148
sage #330 #731144
>>731117
Читаешь очередной такой высер и думаешь, то ли сразу скрыть, то ли по тролить?
Пожалуй скрой.
>>731168
#331 #731148
>>731117
стоит вкатываться в джаву. а отсюда вали к хуям
#332 #731168
>>731144
Кого ты скроешь без айдишника, болезненный?
#333 #731269
>>731081

>а по какому событию у тебя должна вызываться твоя команда? ты её повесил ниначто


В смысле? Сочетание клавиш или что?

>>731084

>соответственно и вешать студия предлагает её на DependencyObject


Не понял. Можно ли поподробнее?
>>731292
#334 #731292
>>731269

> В смысле? Сочетание клавиш или что?


в какой момент развития вселенной необходимо выполнение команды?

> Не понял. Можно ли поподробнее?


ты говоришь такой своему приложению: вот у меня есть команда, на, короче, забайнди её и запускай когда надо, а по завершению на тебе колбэк. но проблема в том, что приложению непонятно, когда тебе там надо. ты обьявил её в Window.CommandBindings, а остальное тебя не ебёт. связывание происходит со вполне себе конкретной пропертей объекта, либо с триггером какого-либо объекта
>>731426>>731836
# OP #335 #731352
>>729954
Я раньше старался тут всем отвечать и помогать, но сам в итоге нашел работу, лол. Теперь времени почти нет.
>>731393
#336 #731393
>>731352
но ведь двач - это единственные твои друзья
#337 #731426
>>731292

>связывание происходит со вполне себе конкретной пропертей объекта


В моём случае это свойсво TestCommand, нет?
Вот только я не могу его привязать к Executed.
С простым кликом не было бы проблем.
>>731450>>731836
#338 #731450
>>731426
блять, какой пиздец
>>731836
#339 #731729
Сап, дотнетеры.
Если так писать

> foreach (var result in results.Results.Where(r => ...))


Он ведь не будет при каждой итерации запускать выражение? Или нужно отдельную переменную?
#340 #731733
>>731729
Не будет
#341 #731745
>>731729
Не будет, подробнее читай у тролсена в разделе LINQ
56 Кб, 427x604
#342 #731767

> In other words, once a Task has a Status of “Running”, calling Cancel() on the CancellationTokenSource no longer has an effect on the actual Task, it is up to the Action within the Task to respond to the token’s message. Additionally, even though the Task has been “canceled”, it reports a status of “RanToCompletion” as if nothing unusual happened!


Сколько нам открытий чудных он готовит!
#343 #731776
>>731729
Нет конечно.
#344 #731778
>>729954
Все должны отвечать ньюфагам кроме тебя. Какой-то дядя должен прийти и ответить.
#345 #731782
>>730096
У нас тоже самое говорят про "а что если перескачат", ни разу не перескакивали, манагер не разрешит переписывать доменную модель с нуля, это пустая трата человекочасов.
В целом подход норм, но в большинстве случаев достаточно просто ninject сделать и все.
#346 #731784
Почему даже для написания простого приложения на WPF требуется использовать MVVM? Мне нужно лишь простенькую форму использовать, зачем приваривать монструозные фреймворки типа Катель или Призм? Почему ипользование заоконного кода это признак дурного тона? У меня от все этой хероты острый приступ СЛОЖНААА.
>>731790>>731825
#347 #731790
>>731784
Во-первых, для твоего хелловорлда от тебя никто ничего не требует.
Во-вторых, пейсание без этих паттернов признак говнища только в проектах которые будут расти, ибо иначе получится лапша со вкусом земельки после тёплого летнего дождика. Опять же – не хочешь – пиши как хочешь, всем грубо говоря насрать.
>>731793
2580 Кб, 3920x2204
#348 #731793
>>731790
Спасибо, держи снег 1ого мая.
#349 #731806
Гуру тасков.

> if(cancellationToken.IsCancellationRequested) cancellationToken.ThrowIfCancellationRequested();


Это единственный легальный способ убивать таск? Везде внутри таска ифы пихать?
>>731819>>731822
#350 #731819
>>731806
интернет лучшего варианта не предложил
#351 #731822
>>731806
А ты как хотел? Тред кикнуть что-ли?
Нормальная практика, в Reactive Extensions тоже самое, только там токен встроен по умолчанию.

А вообще, с жесткой отменой таски слишком много проблем, нужно правильно откатить изменения на каждой стадии.
Проще дать ей закончить и проигнорировать результат.
#352 #731825
>>731784
На самом деле можно спокойно мешать MVVM и заоконный код. За окно смело толкай то, что никогда больше не тронешь. Городить костыли в ViewModel вместо одной строчки за окном - вполне себе говнокод.
#353 #731836
>>731292
>>731426
>>731450

На свежую голову поразбирался ещё.
Привязку можно задать только в объекте DependencyObject.
Поэтому Executed не может получить ICommand из ViewModel.

Как тогда мне скормить ICommand в Executed?
>>731945
#354 #731837
- The C# Player's Guide, второе издание (RB Whitaker) - отличная книга для ньюфагов в шарпе, все расписывается довольно подробно, очень много примеров кода.
- C# 6.0 in a Nutshell (Joseph Albahari и Ben Albahari) - огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином
- C# 6.0 Pocket Reference (Joseph Albahari и Ben Albahari) - просто выжимка из справочника, можно всегда держать рукой
- C# 6.0 and the .NET 4.6 Framework (Andrew Troelsen) - 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.
- C# 6.0 Cookbook (Jay Hilyard и Stephen Teilhet) - книга в формате "проблема-решение", можно пройтись по оглавлению, найти интересные проблемы и попыпаться самому решить, а уже потом посмотреть представленное решение. Книга скорее не для ньюфагов, а для тех, кто уже знаком с шарпом.

На какой стул первым садится?
>>731841>>731985
#355 #731838
анон памаги. Нужен сетевой обработчик ака сниффер ака фильтр лайк впе про. нашел вот эту тему https://habrahabr.ru/post/259459/
в конце темы есть пример кода
немогу понять как у инжектора выбрать процесс целевой. И как настроить длл под фильтр пакетов вида 00 00 00 заменить на 00 00 01 к примеру. анон памаги.
#356 #731841
>>731837
андрюшу троелсена
>>731845
#357 #731845
>>731841
Решили, что в 16 году будем советовать только албахари, а троелсена не будем.
>>731854>>731883
#358 #731854
>>731845
вот у меня есть албахари 5.0 это справочник, забыл - посмотрел, сухая короткая теория. У Троелсена хоть какое никакое применение в обучении
#359 #731864
>>731854
читай албахари давай
>>731870
#360 #731870
>>731864
НО... ок спасибо
#361 #731883
>>731845
Двачую
>>731854
Так тебе in a nutshell нужен
>>731904
#362 #731904
>>731883
я про него и говорил
#363 #731945
>>731836
Я так понял у тебя там хоткеи? Тогда тебе нужен InputBindings.
>>732104
#364 #731985
>>731837
Троелсен мне не понравился. Из него узнал по сути только ADO.NET. Всё остальное какая-то хуйня, очень хуевое изложение. Больше всего понравился John Skeet C# in depth.
#365 #731986
Как заполнять листбокс, чтобы по клику получать много свойств этого элемента? Скажем у меня есть список словарей с ид, названием, датой и еще чем-то, как эти все значения передать в листбокс, чтобы в нем были только названия, но по клику я мог получить все эти остальные значения?
>>731991
#366 #731991
>>731986

>Binding?

>>732003
#367 #732003
>>731991
Все равно нихера не выходит с заполнением.
Листбокс в хамл
<ListBox x:Name="listBox" Margin="0" FontSize="64" ItemsSource="{Binding Computers, Mode=OneWay}" DisplayMemberPath="Name" MouseDoubleClick="listBox_MouseDoubleClick"/>
http://pastebin.com/virZEfhR код класса.
Что я не так сделал?
>>732018
#368 #732018
>>732003
Пункты вообще не появляются или появляются без текста?
>>732022
#370 #732104
>>731945

>Я так понял у тебя там хоткеи?


Да, хоткеи.

>InputBindings


С его помощью приходится биндить команду минимум в двух местах.
И в случае если источников команды много это будет не очень удобно.

А по поводу этого:

>Как тогда мне скормить ICommand в Executed?


решения нету?
#371 #732251
Таски... надо замыкать таски... я успешный человек я замыкаю таски
#372 #732255
Пишу с калькулятора.
Я хочу сделать так, чтобы весь await async код выполнялся в одном потоке, не в ui приложении. Со всеми плюшками и удобствами.

Мне достаточно для этого реализовать синхрконтекст (как?) или ещё что-то нужно?
>>732271
#373 #732271
>>732255
Ты имеешь в виду что у тебя будет одна очередь фоновая очередь на выполнения тасок?
Если сможешь это сделать с помощью синх.контекста, отпиши потом как сделал.

Я в свое время смог сделать что-то похожее только с SemaphoreSlim.
У него есть метод "Task WaitAsync()", который удобно использовать в async/await.
В итоге потоки там конечно разные, но не более чем один одновременно-работающий.
>>732408>>732409
60 Кб, 602x683
18 Кб, 327x147
#374 #732318
Помогите пожалуйста, уже заебался.

Есть вот такой джсон. Цель - получить значение, там где стрелочка. (picrl#1)

Использую Ньютоновский Json.Net
Для проверки (пытаюсь достать значение success) использую такой код и получаю такой результат (picrl #2)

Но когда пытаюсь использовать value[0] вместо value["success"], шлет нахуй, пишет ожидается имя элемента. Как мне получить доступ по индексу? Или узнать какое имя у N-го элемента, чтобы уже использовать имя?
#375 #732321
>>732318
Ти чиво, индексы в json'е у него
>>732322
57 Кб, 626x627
#376 #732322
>>732321
Ну если они в документации могут, то почему я не могу?
#378 #732326
Вот тут лютая годнота для начинающих (особенно не шарящих в программировании)
https://ulearn.azurewebsites.net/
#379 #732327
>>732322
В этом и проблема твоего жсона.
Надо массив, а у тебя там просто объекты не в массиве. Скинь вообще тот жсон с пика.
>>732329>>732338
#381 #732330
>>732322
Там обращение к массиву, а тебя - не совсем
#382 #732337
>>732318
Что за хуйню я прочитал?
Сформулируй задачу так, чтоб я понял. Ты берешь весь json и обзываешь его value. Потом ты берешь у этого jason корневой элемент success. И разумеется он берется. Но потом ты пишешь какую то хуйню.
Что бы получить то, что sn любовно нарисовал стрелочкой, тебе нужно пройти по всем веткам.
Вот как получить ее:
value["rgDescription"]["цыферки"]["descriptions"][6]["value"] = ""
#383 #732338
>>732327
1. Вместо цыферок, я хочу использовать индекс, потому что нужно пробежаться по всем этим циферкам.
2. Не [6], а ["6"]
#384 #732339
>>732338
Специально для тебя был изобретен foreach
>>732346
#385 #732342
>>732338

> 2. Не [6], а ["6"]


Все что в кавычках считается именем. Если ты впихнешь индекс в кавычки, то будет искать ветку с именем "6", которой там нет. Но .т.к. там просто массив, то нужно ставить именно [6] как индекс.
13 Кб, 395x68
#386 #732346
>>732339
Так?
Это не работает, если что, но я не могу понять почему. Тип элементов точно JToken, потому что если пытаюсь вывести в textBox без .ToString(), то пишет что нельзя JToken в string неявно
>>732349>>732356
#387 #732349
>>732346
Cannot access child value on Newtonsoft.Json.Linq.JProperty.
>>732353
#388 #732353
>>732349
А погуглив эту ошибку я нашел решение.

Спасибо няши, помогли.
>>732581
#389 #732356
>>732346

> Так?


Нет, не так. foreach работает только для однотипных коллекций. У тебя в rgDescription условно разные именованные элементы. Сперва получи их набор через Vhildren. Потом уже можешь по ним ходить.

> если пытаюсь вывести в textBox без .ToString(), то пишет что нельзя JToken в string неявно


Самый охуенный способ ухнать тип переменной.
#390 #732408
>>732271

>Ты имеешь в виду что у тебя будет одна очередь фоновая очередь на выполнения тасок?



Да, одна очередь на выполнение всего async кода.
#391 #732409
>>732271
То есть по умолчанию в не UI нет синхронизатион контекста. От чего весь async код отправляется в threadpool. А я хочу сделать синхконтекст как в UI потоке, чтобы все говно исполнялось через очередь.
>>732530
#392 #732423
>>724804
А найти место куда точно попадает перед тем что тебе нужно, а дальше ф11?
>>734348
#393 #732530
>>732409
Кстати читал "Нет никакого потока" https://habrahabr.ru/post/216659/
async/await в C# такие прикольные, это просто коррутины которые вызываются последовательно.
Будет ли это делаться через потоки или IO/прерывания это внутренняя реализация.

Для своих тасок ты можешь написать кастомный TaskScheduler (если это не PCL).
Но если будешь использовать внутри этих тасок вложенные async/await, то там уже меньше контроля.

В все время наебался с PCL (общий код) для Xamarin (Android/iOS/WP) в итоге остановился на SemaphoreSlim
Это самое простое и нет зависимости IO это или какие-то рамдомные методы чужих библиотек.

P.S.
Если кто смог сделать по другому, буду рад услышать.
>>733212
#394 #732543
А если есть например код у меня без асинков всяких.
Его можно юзать из асинк метода? Чтобы не блочило.
>>732574>>732577
#395 #732574
>>732543
шо? не юзать await GovnoAsync() в async-помеченных методах?
>>732625
#396 #732577
>>732543
А нафига тебе это вообще нужно?

У меня были задачи:
1) сделать загрузку картинок с кэшированием
1.1) загрузки (во временные файлы) были в 3 потока
1.2) модификация дискового кэша (добавление удаление записей) в 1 поток
2) Работа с SQLite базой в 1 потоке, в независимости от того с какого потока она вызывается.

При этом было нужно не держать явно потоки, а пользоваться всеми плюшками стейт-машины async/await
>>732625
#397 #732581
>>732353
Ну и как исправил?
>>733263
#398 #732603
Ананасы, посоветуйте что-нибудь по архитектуре. Даже с MVVM код рано или поздно превращается в нечитаемое говно. Вот опять сижу и пытаюсь отрефакторить эту срань. Что посоветуете почитать такому аутисту?
>>732606
#399 #732606
>>732603
Руководство Microsoft по проектированию архитектуры приложений
32 Кб, 554x286
#400 #732623
>>732632
#401 #732625
>>732574
>>732577

Вот есть у меня обычный метод string MakeGovno()
Есть async метод нажатия кнопки.
Как мне в этом методе вызывать MakeGovno, чтобы не блокировало вызывающий поток? В данном примере это ui.
>>732629
#402 #732629
>>732625
public async void ButtonEventHandler(...) {
await Task.Run(() => MakeGovno());
}
>>732633>>732645
#403 #732632
>>732623
Пиздец, чому бы не десериализвать это в нормальные объекты и не ебаться со словарями?
>>732640
#404 #732633
>>732629
или использовать ссылку на метод (если они оба в одном классе)
public async void ButtonEventHandler(...) {
await Task.Run(MakeGovno);
}
#405 #732640
>>732632
Какими еще словарями?

>десериализвать это в нормальные объекты


Но тогда ведь придётся еще и сам класс-объект этот делать, а это нахуй надо ебаться с таким жсоном большим.
>>732643>>732648
#406 #732643
>>732640
ну разве что если тебе из огромного джейсона нужно полтора проперти
#407 #732645
>>732629
А значение как получить из метода?
>>732646>>732648
#408 #732646
>>732645
замыканием
24 Кб, 419x226
#409 #732648
>>732640
1) В новой студии есть генератор классов из JSON "из коробки"
2) http://json2csharp.com

>>732645
пикрил

P.S. Иди уже какую-нибудь книжку по async/await почитай
#410 #732665
>>732318
В чём на первом пике открыт жсон?
#411 #732682
Я знаю c++, могу в ангельский, но плохо. Смогу ли я понять что написано в The C# Player's Guide, второе издание (RB Whitaker) и CLR via C# (Jeffrey Richter)?
>>732686
#412 #732686
>>732682
рихтер есть в переводе, для общего понимания достаточно
#413 #732688
Шарпаны, есть задачки для убер новичков? Только не для циклов-хуиклов, а для объектов и методов. Даже не задачки, а сборник типовых решений что ли.
#416 #732705
>>731854
А Рихтер уже ненужен?
#417 #732706
>>732688
Я кидал выше >>728471
>>732707>>732709
#418 #732707
>>732706
Олсо, добавьте это в следующую шапку плз
#419 #732709
>>732706
Спасибо братишка, сотен нефти тебе.
19 Кб, 200x218
#420 #732727
>>719840
Я бы так сделал
http://pastebin.com/jJkjkkS4
>>732739>>732755
#421 #732739
>>732727
1) В чем прикол использования Equals (вместо ==)?
2) Чем твои InvalidCastException лучше FormatException метода DateTime.Parse?
3) Наверное (надо уточнить) через Select/SelectMany можно сделать это в функциольном/чейнинг стиле.
>>732754
37 Кб, 785x247
#422 #732754
>>732739
1) В string без разницы, там он переопределён. В других ссылочных типах производится проверка на то, указывают ли ссылки на один объект в куче
2)Что-то DateTime.Parse мне ничего не бросило, а я просто получил хуйню в результате. Пикрил.
3)Да, я тоже об этом подумал, но по моему помешает var item = new Item(); внутри цикла.
#423 #732755
>>732727
ОЧЕНЬ МАЛО РЕФЛЕКСИИ
https://dotnetfiddle.net/ocxFKo
>>732756>>732758
#424 #732756
>>732755
Ну ладно, у тебя поинтереснее вариант.
>>732758
#425 #732757
Помогите ньюфажине. Упорядочил массив пузырьком, теперь хочу записать все элементы и повторяющиеся выделить цветом.
for (int i = 0; i < array.Length; i++)
if (array == array[i + 1])
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(array);
}
else
{
Console.WriteLine(array);
Console.ResetColor();
}
И естественно при такой проверке [i+1] выходит за пределы массива. Как по другому проверить? Или пердолить условие на "проверку проверки"?
>>732770>>732771
#426 #732758
>>732755
>>732756
Хотя и менее понятный (по крайней мере мне)
>>732769
#427 #732769
>>732758
Основные 2 мысли которые я хотел донести: не надо if (fieldName == 'yoba') делать, класс у тебя уже есть, имена полей можно взять из него; (int|DateTime|yoba).Parse это конечно здорово и типизированно, но есть Convert.ChangeType
#428 #732770
>>732757
for (int i = 0; i < array.Length -1 ; i++)
>>732785
#429 #732771
>>732773
#430 #732773
>>732771

>Count


А надо было сгруппировать.
>>732776
#431 #732776
>>732773
Не понял
>>732784
#433 #732785
>>732770
Ну он тогда последний элемент теряет.
>>732791>>732794
#434 #732791
>>732785
Ещё один нюфаг.
#435 #732794
>>732785

>Ну он тогда последний элемент теряет.


array[i + 1]
33 Кб, 336x386
#436 #732801
>>732318
Что-то я не понял проблемы
https://dotnetfiddle.net/ocxFKo
>>732803
#437 #732803
>>732801
Спасибо, котик, но мы этот фидл уже постили, в json он не умеет.
>>732806
49 Кб, 500x333
#438 #732806
>>732803
Простите, котик обосрался.
https://dotnetfiddle.net/9uHg9H
#439 #733182
Кто-то устраивался на работу по си шарпу? Что спрашивают на собеседованиях? Надоело фрилансить за еду.
121 Кб, 400x400
#440 #733192

>В чем разница между интерфейсно-ориентированным, объектно-ориентированным и аспектно-ориентированным программированием?

>>733197
#441 #733197
>>733192
Они ориентированы на разные концепции.
oche mali yoba
>>733213
#442 #733212
>>733249
#443 #733213
>>733197

>В чем разница


Ну ты совсем тугодум.
#444 #733237
>>733182
та добавьте вы уже это блять в шапку
#445 #733249
>>733212
Оу жесткий лок. Я правильно понимаю что поток будет заблокирован на время отсутвия заданий в очереди?
>>733465>>733496
#446 #733251
>>733182
Три столпа ООП платина, reference-types vs value-types, GC, как реализовано множественное наследование, если веб-макакой - типы джоинов, путь запроса от клиента до базы и обратно. Возможно, настройка ииса, уметь зайти по рдп.
>>733266>>733280
#447 #733263
>>732581
Не знаю, вдруг ты прочитаешь, но вот как мне и посоветовали, взял Children от rgDescriptions.
#448 #733266
>>733251
чота жиденькое собеседование получилось
>>733278
#449 #733278
>>733266
Я такое на мидла проходил. Ну еще плюс простая задача.
>>733281>>733853
#450 #733280
>>733251
Что-то изи какое-то. Хотя у меня на последнюю работу тоже как-то собеседовали так себе.
Какие паттерны работы с базой знаешь, чем гет от поста отличается, что такое индекс бд и какие побочки от него могут быть.
#451 #733281
>>733278
Какой город?
>>733319
#452 #733282
Планирую понаехать из провиции в ДС2. Очкую проходить собеседования, не люблю краснеть когда задают вопросы, на которые я не знаю ответы.
>>733299
#453 #733284
>>733280

> какие побочки от него могут быть.


И какие же?
>>733285
#454 #733285
>>733284
Замедлят вставку, базу в размере разнесёт из очевидных. + Надо следить за индексами: ребилды, дефрагментация, етц.
#455 #733299
>>733282
Отвечай что не знаешь и пусть задают следующий.
>>733304
#456 #733304
>>733299
У меня ощущение будто я в своей провинции макака, а в мегаполисе все умные пиздец, я же ошибаюсь, да?
>>733321
#457 #733319
>>733280
Ну это не все, что было. Просто самое интересное.
>>733281
Тула
#458 #733321
>>733304
Не узнаешь, пока не проверишь. Но на самом деле макаки везде есть.
>>733325
#459 #733325
>>733321

> Не узнаешь, пока не проверишь. Но на самом деле макаки везде есть.


Ну это правильно, тоже так думаю
#460 #733327
А есть тут такие кто помимо шарпача знают еще один язык? Только не на уровне поиграться, естественно. Подумывю вкатиться в мобильную разработку на ведре. Хотелось бы на айось, но там анальный мак нужен или вмвар с кастылями.
>>733359
#461 #733359
>>733327

> А есть тут такие кто помимо шарпача знают еще один язык?


Я знаю.

> Подумывю вкатиться в мобильную разработку на ведре


Вкатывайся в Xamarin.
>>733372
#462 #733372
>>733359
Что за второй язык? Ты на нём зарабатываешь или используешь на той же работе(не js, я надеюсь)

Зачем ксамарин? В нём профит если только под ios. В андроиде яву не так уж и сложно осилить.
>>733482
#463 #733375
ребзят, какие, если есть, есть механизмы поддержания целостности данных при наличии двух (и более) источников данных, скажем, рсубд для аутентификации, граф для контента? пыщьпыщь

>>733280
мне сделали предложение на основании собеседования (лол) из шести вопросов
#464 #733379
Что паттернам лучше почитать?
>>733391>>733453
#466 #733398
>>733391
Говорили что это слишком сложно для начала.
>>733401
#467 #733401
>>733453
#468 #733453
>>733401
>>733379

тоже фриманов читал для начала. по ходу прочтения мне все больше казалось, что я читаю литературу для аутистов, ибо обьясняют задачи на уточках и пиццах. однако для понимания бОльшей части сложных паттернов это было неплохо
>>733460
#469 #733460
>>733453
Все равно не поймёшь пока использовать не начнёшь, а для общего понимания можно и на уточках.
#470 #733465
>>733249

>Оу жесткий лок. Я правильно понимаю что поток будет заблокирован на время отсутвия заданий в очереди?


Да.

Бесконечный цикл который ждет пока в очередь что-то не попадет.

Как альтернатива, можно проверять, есть ли в очереди элементы, и если нет, ждать, скажем 100 миллисекунд, и проверять снова.
>>733496
282 Кб, 1920x1200
#471 #733476
Почаны, обесните когда используется репозиторий, а когда юнит оф верк?
>>733481
#472 #733481
>>733476
между ними, вроде бы как, общега ничего и нету
https://habrahabr.ru/post/238737/

Репозиторий представляет сущность как коллекцию в идеале IQueryable
ЮоВ дает возможность в определенный момент времени использовать один источник данных из нескольких местов на самом деле, UoW чутка сложнее
#473 #733482
>>733372

> Что за второй язык?


Java / Kotlin

> В андроиде яву не так уж и сложно осилить.


Java НЕ нужна, из C# гораздо проще вкатится в Kotlin - меньше удивление будет.
В Kotlin есть экстеншен-методами, норм. лямбдами и тд, а скоро и с async/await.

"Краткий обзор Kotlin и сравнение с C#" - https://habrahabr.ru/post/281759/
На последем DotNext его рекомендовали https://www.youtube.com/watch?v=jDrCvq0yo7g
Рассказ о языке с отсылками к C# https://www.youtube.com/watch?v=DQqOCx2UJ10
>>733493>>733495
#474 #733493
>>733482
Я всегда был за более распространенные технологии. Сейчас хайп вокруг котлин пройдет и все про него забудут. А если придется где-то подработать, то там по-любому будет Ява. Пока котлин не толкает гугол, он не нужен. Да и уж лучше бы гугол Свифт выбрал вместо Явы и был бы единый язык для мобильных платформ, но это мечты.
#475 #733495
>>733482
Да и подозреваю толкали его джетбрэйнз.
#476 #733496
>>733249

>Оу жесткий лок.



>>733465

>Как альтернатива, можно проверять, есть ли в очереди элементы, и если нет, ждать, скажем 100 миллисекунд, и проверять снова.



Я вот не знаю что лучше. Семафор, или периодически усыплять/будить поток.

Если север будет много простаивать, то семафор явно лучше.
#477 #733853
>>733278

>Я такое на мидла проходил


>Три столпа ООП платина, reference-types vs value-types, GC, как реализовано множественное наследование


Лол, серьезно? Это же вопросы для джуниора, мне кажется. Может у меня даже есть шанс устроиться в офис...
>>733182-кун
#478 #733877
Вкатился в С#
Есть курсы от ITVDN
-
Нет никаких идей абсолютно, чего покодить? Могу в объектно ориентированное. Идей нет никаких. Где можно почитать про функционал и не ограничиваться говном всяким, типа калькулятооов. Хочу кодить сильно. ЧТО БЫ НАПИСАТЬ, АНОНЫ?
-
И что нужно знать для трудоустройства на должность С# прогера?
#479 #733880
>>733877
Я уже как пару недель пытаюсь написать плоттер/логгер на C#+WPF, чтобы он получал по сериалпорту, сохранял ее и отображал. Оче удобно для самоделок на AVR/STM32. Есть дохуя идей как его потом улучшить, начиная от прикручивания модбаса до создания на его основе центрального сервера с отдельным клиентом. И на каждом участке приходится осваивать что-то новое, постоянно искать инфу что и как лучше сделать.
Так же поскроль тред, такой вопрос уже задавался минимум 2 раза.
>>728399
>>732688
301 Кб, 1920x1080
#480 #734034
>>733877

> ЧТО БЫ НАПИСАТЬ, АНОНЫ?


На тебе дурашка, роль
#481 #734278
>>733877

> Есть курсы от ITVDN


Говно. Не понимаю, как это может помочь ньюфагам. Слишком много информации, ньюфагам и половины не надо. Еще хуже, если запомнят не ту половину, которая нужна для вкатывания.

> ЧТО БЫ НАПИСАТЬ, АНОНЫ?


Хоть что для себя, чего тебе не хватает. Сложность не важна. Я начинал при вкате писать десктоп-клиент для одного сайта и спустя столько лет до сих пор допиливаю по вечерам под пивас. Всё что я изучал, осваивалось на практике путём добавления фич в мою софтину.
>>734279>>734282
#482 #734279
>>734278
Этим сайтом был Альбер Двачштейн?
>>734281
#483 #734281
>>734279
Нет. Я тогда и на дваче не сидел. Поддвачнул бы соседний тред про падение на дно из-за программирования.
#484 #734282
>>734278

> > Есть курсы от ITVDN


> Говно. Не понимаю, как это может помочь ньюфагам. Слишком много информации, ньюфагам и половины не надо. Еще хуже, если запомнят не ту половину, которая нужна для вкатывания.


Схуяли говно? Смотрел их в дополнение к троэлсону. Как один источник не очень, конечно, но в дополнение норм.
Рудик #485 #734338
Вопрос знающему программисту. Я не могу понять, каким образом генерирует псевдослучайные числа. Залез в stdlib.h, нашел описание функции srand и ничего не понял.
программирую на vusual studio 2015 на C++, если это необходимо знать тебе
>>734342
10 Кб, 528x177
#486 #734342
>>734338
Отклеилась
>>734349>>734422
#487 #734348
>>732423
>>724808
Ну вот в том то и дело что найти это место в солюшене в 50 проектов не так уже просто, когда в стек трейсе никакой инфы нету.
В предыдущем месте тоже будет одна хуйня с одним потоком, в котором один вызов мэинформ и все. Это совсем неинформативно.
Еще вариант есть на скорость нажать брейк, чтобы словить именно тот момент что нужно, если например в грид некоторое время выводятся данные из бд. Это тоже хуйня какая-то, если повезет.
>>734426
#488 #734349
>>734342

>.h


а в этой хуйне разве не тупо названия функций прописываются. кресты же в .cpp файлах код хранят, или не?
>>734354>>734363
#489 #734354
>>734349
Так. А где тогда я смогу найти алгоритм/формулу, по которой считаются псевдослучайные числа?
#490 #734363
>>734349
обычно да, таки только заголовки. но ничего не запрещает тебе запихать туда реализацию чего угодно. в случае с шаблонами так ее туда запихивать приходится, ну или дописывать #include "your.cpp"
>>734369
#491 #734369
>>734363
то есть, я могу на крестах тупо в заголовочных файлах код хуярить? и всё работать будет?
>>734409
#492 #734409
>>734369
Если ты работаешь в IDE (а не блокноте), то я не советую.

Недавно смотрел трейнинг от JetBrains, они там раскалывали про CLion (C++ IDE).

Из их доклада я понял что все IDE заточены под конкретное построение проектов.
Типа что в h нет рабочего кода и по нему не надо каждый раз делать AST, а можно кэшировать.

Если ты начнешь извращаться, то там все кэши поедут и при каждом изменение будет анализироваться весь проект.
В итоге твоя IDE будет сильно тормозить на больших проектах.
>>734744
4 Кб, 258x228
#493 #734422
>>734342
http://www.cyberguru.ru/cpp/pseudo-number-generators-with-applied-crypto-page4.html
Нашел формулу-таки. Но не могу понять, как определяются нужные значения. Допустим, пикр, X0=? X1=41 .... и остальные пишет верно. Где достать цифры?
#494 #734426
>>734348
Тебе ж не надо по всем 50 проектам шароебиться, тебе нужно найти кнопку-хуепку которая вызывает твое сообщение и поставить в ней кругляш.
>>734454
#495 #734454
>>734426
А для этого как раз и надо шароебиться по 50 проектам, если дебагом никак не отловить.
>>734476
#496 #734476
>>734454
Ебанулся штоле, документашку почитай/спроси пидоров какой модуль отвечает за эту вьюху.
>>734482
#497 #734482
>>734476
Документашки вменяемой нету, какой модуль у спрашивать стремно, еще нахуй пошлют(пошлют потому что скорее всего сами не знают)
>>734502>>734512
#498 #734502
>>734482
Такие аутисты хуже червей-пидоров, вместо того чтобы быстро найти бажик и поправить они сидят и медленно их ищут, очень медленно. Ты работать устроился или аутировать?
>>734527
#499 #734512
>>734482
если пошлют из-за подобного вопроса, знач ты устроился на какое-то дно. а раз так то ты сам чирвяк балотный и мы не будем памагать тибе
>>734527
#500 #734515
ПОСОНЫ ХУЛИ ОНО НЕ КОМПИЛИРУЕТ?
ЧО ЕЙ БЛЯТЬ НЕ ТАК?

https://dotnetfiddle.net/gs40Cl
#501 #734518
>>734515

>where T: a, b


Предполагая что какой то класс может быть наследником и a и b, ох вейт, у нас же сишарп и компилятор за такую хуйню убивает нахуй.
>>734526
#502 #734519
>>734515
Прост ты пидор.
Уебывай с борды
#503 #734526
>>734518
вот щас ничего не понял, что эй не нравится?
>>734537
#504 #734527
>>734512

>знач ты устроился на какое-то дно.


Куда взяли, лол. Первая работа, без опыта
>>734502
Я просто думал может есть какая-то специальная штука в таких случаях, о которой я не знаю. Например как, посмотреть последние 50 действий, если в стектрейсе не видно...
Я то в итоге нахожу баги, но с помощью обходных способов(поиск сообщение меседжбокса по всему солюшену или если повезет когда быстро брейк нажму в стектрейсе останется что-то полезное) которые не для всех случаев годятся
>>734537
#505 #734537
>>734526
Приведи, пожалуйста, пример класса, который наследуется и от A и от B, чтобы его можно было передать в твой метод.

>>734527

>быстро брейк нажму


Проиграл с таких методов разработки. Но лол, хорошо что находишь, значит ты не бесполезен.
>>734557>>734558
#506 #734538
>>734515
Нельзя конкретные типы пихать в ограничения.
>>734540>>734549
#507 #734540
>>734538
define конкретные и неконкретные типы
>>734559
#508 #734549
>>734538
што?
>>734559
#509 #734557
>>734537

>Проиграл с таких методов разработки.


Ну а что еще делать?
Все тут своими делами занимаются, заебывать даже как-то неудобно
>>734570
#510 #734558
>>734537

>Приведи, пожалуйста, пример класса, который наследуется и от A и от B, чтобы его можно было передать в твой метод.


но нахуя?
#511 #734559
>>734540
>>734549
Забыл, что можно, лол. Но только от одного, а не от двух.

https://msdn.microsoft.com/en-us/library/d5x73970.aspx

Хз, может интерфейсов можно указывать несколько сразу.
#512 #734560
>>734558
и вообще множественное наследование нельзя вроде
>>734571
#513 #734563
>>734558
Суть ограничения, тип Т должен наследоваться от A, множественного наследования не завезли и потому еще и тип B ограничениях приводит к еггор.
#514 #734570
>>734557
Когда человек приходит на проект, ожидаемо что он будет задавать вопросы, по хорошему, ему должны еще и рассказать что они за хуйню тут используют/понаписали, чтобы это человек не писал другую хуйню.
>>734558

>но нахуя?


>тобы его можно было передать в твой метод


kolobok.jpg
#515 #734571
>>734560
и вообще этот хуй пишет что можно http://metanit.com/sharp/tutorial/3.12.php

>При этом мы можем задать множество ограничений через запятую:



class Bank<T> where T : Client, Account
{}
>>734583
#516 #734583
>>734571
Хм.. ошибка в туторе.
По сути верно, но два класса нельзя. Можно класс и кучу интерфейсов.
>>734591
#517 #734591
>>734583
https://dotnetfiddle.net/PtZBwD

хорошо, а хули щас не работает?
>>734593>>734594
#518 #734593
>>734591
b и a местами поменяй и научись ошибки компилятора читать
>>734595
#519 #734594
#520 #734595
>>734593
там 2 интерфейса,
ошибка 'T" является параметр типа, который недопустим в данном контексте.

чо это значит?
>>734597
#521 #734597
>>734595
лол, туплю пиздец, ушел пойду спать
#522 #734600
Хорошо,
если все равно выносить методы в интерфейс, тогда отпадает смысл в шаблонах
вопрос нахуя они такие нужны?
>>734606
#523 #734606
>>734600
IEnumerable<T> видел? Напиши пожалуйста интерфейс для T
#524 #734643
Вот реально, в ногу не дают выстрелить.
На плюсах достаточно написать "сделай так, я лучше тебя знаю" и все, компилятор не выебывается.
#525 #734744
>>734409
двачую. то, что можешь, не значит, что должен. надо делать как принято. все кресты, по сути, на этом принципе держатся.
#526 #734933
Есть вопрос к тем, кто угорает по asp mvc, в частности - кто шарит в бандлах.
Кароч, есть у меня SPA сайт на ангуларе.

Выделил такие бандлы:
main - тут у меня солянка из всяких jquery, angular и прочей сторонней еболе
directives - тут ангуляровые директивы
modules - ангуляровые модули
services - ангуляровые сервисы
app - собсно контроллеры.

В чем жопа. Есть у меня скрипт app.js (главный модуль приложения), который валит все приложение, если его закинуть в мандл app. Работает, только, если его расположить в main. Причем, в таком случае, перестает работать на лисобраузере. И я не понимаю почему.
К слову: все внешние скрипты лежат парами: обычный и .min.js вариант. В бандле прописываю обычный.
Поясните, что я делаю не так?
>>735090
#527 #735090
>>734933
зачем ты отделяешь скрипты по бандлам, если сиравно их используешь вкупе?
#528 #735241
откуда можно почитать про оптимизацию работы приложения/отдельного куска BL для работы с большими объемами данных?
35 Кб, 480x640
#529 #735293
Помогите совладать с фоновой задачей в Windows Store приложении. Я вроде сделал всё правильно, а таск нихуя не работает и пишет в события винды ошибки
"Activation of app <appname> failed with error: This app does not support the contract specified or is not installed. See the Microsoft-Windows-TWinUI/Operational log for additional information.".

В Operational log написано:
"The app <appname> is not registered for the Windows.BackgroundTasks contract or is not installed."

Референс на проект с таском я добавил, declaration в манифесте есть(даже две штуки т.к. два разных таска регаю), метод для регистрации таска я писал глядя в MSDN т.е. всё должно быть ок.
>>737632
#530 #735649
Сап. Есть функция

>public void Enqueue(T item) {



>1 int new_tail = Interlocked.Increment (ref _tail);



>2 _array[new_tail] = item;



>3 Interlocked.Increment (ref _size);



>}



Функция вызывается одновременно из различных потоков.

Внимание вопрос!
Может ли случится так, что, один поток вначале исполнит код 1_1,1_2, и процессор переключится на другой поток, после чего, второй поток, исполнит сразу 2_1, 2_2, 2_3, процессор переключится на первый поток, и тот исполнит 1_3.
>>735713
#531 #735713
>>735649
Может.
>>735972
#532 #735774
Тред тонет, нужен перекит.
#533 #735972
>>735713
Грусть пичаль.
>>736060
#534 #736056
Ононасы, поясните как этот код работает, в шарпе же нельзя наследоваться от самого себя?

public abstract class AggregateRoot<TAggregate, TIdentity> : IAggregateRoot<TIdentity>
where TAggregate : AggregateRoot<TAggregate, TIdentity>
where TIdentity : IIdentity
{...}
>>736062
#535 #736060
>>735972
Так надо lock делать на этот участок кода. Ну это если тебе самому надо это навелосипедить, а если нет - нужно взять потокобезопасную коллекцию и не пердолиться с низкоуровневыми конструкциями.
>>736588
#536 #736062
>>736064
#537 #736064
>>736062

Это же для плюсов, там я знаю что такие и еще более крутые выкрутасы допустимы.
>>736065
#538 #736065
>>736064
Так тут нет наследования от себя, ты просто указываешь constraints для type parameters
>>736081
#539 #736081
>>736065

Мдэ, во навернули.
>>736260
#540 #736260
>>736081
ничего необычного, как Guid:IComparable<Guid>, только завернутое в абстракцию
#541 #736588
>>736060

>Так надо lock делать на этот участок кода. Ну это если тебе самому надо это навелосипедить, а если нет - нужно взять потокобезопасную коллекцию и не пердолиться с низкоуровневыми конструкциями.



Лок не подходит. Уж оче кретичен перфоманс.

>нужно взять потокобезопасную коллекцию и не пердолиться с низкоуровневыми конструкциями.


Говно собачье в шарпе эта коллекция. И она ниразу не низкоуровневая, лол.
Она постоянно создает новые сегменты, то есть выделяет память, и при большом потоке сообщений просто пиздец в системе произойдет от нее.
В принципе, лечится запихиванием использованных сегментов в потокобезопастный стек.
Он кстати то-же то еще говно.
И в целом получается оче громоздкое решение. Что тот же лок уже лучше будет работать.

А так, я сделаю на коленки оче маленькую оптимизированную очередь.

В принципе, разобрался что к чему и получилось.
С тем ограничением, что макс размер очереди фиксирован размером внутреннего массива.
69 Кб, 480x534
#543 #737632
>>735293
Разобрался. Я проебался и вместо Windows runtime компонента создал обычную библиотеку классов.
Тред утонул или удален.
Это копия, сохраненная 23 мая 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски