Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (7)

Лучшие ответы пользователя

Все ответы (7)
  • Как и где хранить пользовательские данные в соответствии с законом "О персональных данных"?

    @nightwolf_du
    5 лет опыта. c#, js, sql.
    Цель этого закона выражена в простой фразе, на уровне самого высокого начальства -
    "В случае отключения страны от глобальной сети наш сегмент интернета должен остаться работоспособным и функциональным."
    Пример заметки - ria.ru/politics/20141001/1026332599.html .
    Просто примите меры по восстановлению работоспособности и бэкапам на территории страны в данном случае.
    Т.е. в суде сможете съехать даже с локальной копией данных.
    Ответ написан
    Комментировать
  • Как параллельно выполнять функции на C#?

    @nightwolf_du
    5 лет опыта. c#, js, sql.
    самый простой вариант - попробуйте вызвать без await, т.е.
    var task1 = Func1();
    var task2 = Func2();
    Затем подождите асинхронно завершения всех тасков
    await Task.WhenAll(task1, task2, task3);
    И делайте с результатами что хотите. Результат можете брать хоть await task1, хоть task1.Result (аналогично с остальными task)

    Function1 в таком варианте может исполняться синхронно до первого await (точнее могу сказать подняв книгу, которую и вам рекомендую - Дэвис Д. - Асинхронное программирование в C# 5.0 - 2013 )

    А так есть куча способов параллельного исполнения - от брутального старта нового потока new Thread(<делегат>).Start() и записи куда-нибудь в общую память, старенького Parallel.ForEach до Task.Factory.StartNew()
    Ответ написан
    Комментировать
  • Как заблокировать переход на новую строку по нажатию Enter в RichTextBox(multiline)?

    @nightwolf_du
    5 лет опыта. c#, js, sql.
    Единственный способ, который приходит мне на ум, является сильно не простым.
    Определите, на какой/какие из эвентов (KeyPress, KeyDown, KeyUp, PreviewKeyDown) приходится данное действие, после чего

    1) снимите все дефолтные обработчики рефлекшеном,
    2) обрабатывайте их вручную.

    Снять обработчик можно например таким кодом (пример для события Click, соответственно для ваших строковая контанта EventClick поменяется, нужно поле отвечающее за ваши эвенты )
    вместо panel1 - соответственно ваш richTextBox:
    FieldInfo f1 = typeof(Control).GetField("EventClick", BindingFlags.Static| BindingFlags.NonPublic);
    object obj = f1.GetValue(panel1);
    PropertyInfo pi = panel1.GetType().GetProperty("Events", BindingFlags.NonPublic | BindingFlags.Instance);
    EventHandlerList list = (EventHandlerList)pi.GetValue(panel1, null);
    list.RemoveHandler(obj, list[obj]);


    чтобы не писать после этого вручную всю обработку нажатия клавиш - можно попробовать поискать в EventHandlerList list нужный вам event handler, обрабатывающий пробел, но это довольно сложно, и не факт что вся логика связанная с нажатием клавиш - помещена не в один метод.
    Чтобы разобраться лучше - смотрите исходники richTextBox
    Ответ написан
    2 комментария
  • Существует ли в контексте ASP.NET MVC такое понятие как события?

    @nightwolf_du
    5 лет опыта. c#, js, sql.
    Вы хотите странного.
    Классический веб-сервер работает только по пинку с клиента запросом, отдавая на него какой-то response.
    Если вы хотите с сервера что-то запушить на клиент - вам надо смотреть с сторону WebSockets(правильно, но достаточно сложно) - смотрите сюда https://habr.com/post/145077/
    Либо периодически опрашивать клиентом сервер через ajax и держать какой-то статический кэш событий, проверяя его на request-е.(вариант "в лоб", не очень правильно, но быстро в реализации)
    Ответ написан
    2 комментария