Ответы пользователя по тегу .NET
  • Как остановить выполнение асинхронной операции?

    @carbon88
    .NET developer/ORM developer
    берете, создаете CancellationTokenSource, далее из него берете токен. его можно передать в таск. но сам токен не остановит выполнение таска. он так сказать пробрасывает информацию о том что была запрошена отмена операции внутрь таска. далее вы в своем коде можете проверить отменили ли задачу и прекратить ее исполнение. на кнопку отмены загрузки нужно повесить вызов CancellationTokenSource.Cancel() но именно того сорца что вы создали раньше для токена переданного в загрузку файла.
    Ответ написан
  • Как посчитать до какого значения заполнен массив по каждому из измерений?

    @carbon88
    .NET developer/ORM developer
    Пробежаться по массиву и проверить что там заполнено. Тут есть два варианта, бежать сначала и искать первый незаполненный или бежать с конца и искать первый заполненный. выбирайте стратегию сами.
    Тут еще вопрос каким образом идет запись - рандомно, в любую клетку так сказать, или последовательно.
    Если рандомно, то скорее всего нужно брать вариант просмотра с конца. Если последовательно, то тут вообще можно без обхода обойтись, запоминая максимальный индекс(ы) по которому(ым) произвелась запись.
    Ответ написан
    Комментировать
  • Необработанное исключение типа "System.OutOfMemoryException" в mscorlib.dll. Что делать?

    @carbon88
    .NET developer/ORM developer
    1)Вы уверены что у вас элементов будет меньше чем int.MaxValue?
    2)Выкиньте в топку этот List, можно оставить только если вам заранее известно количество элементов и вы можете инициализировать maxCapacity сразу. если нет то выкидывайте однозначно. Дело в том, что после 4-ой вставки (если мне не изменяет память) при каждой следующей вставке элемента Capacity увеличивается вдвое, соответственно массив элементов который там внутрях тоже увеличивается вдвое и элементы перегоняются в новый. представляете с какой скоростью растет массив? то есть на i = 33554433 + 1 list.Add() будет пытаться выделить кусок под 67108866 элементов, а это нужен непрерывный кусок памяти который к тому времени наверняка не находится и все падает с OutOfMemoryException. кстати же еще нужно хранит массив с которого будем копировать в тот который копируем. это огромная трата памяти. жесть просто.

    Не знаю что у вас за код, который использует результат метода Time, но если там всего лишь перебор то этот ваш алгоритм это просто жесть, и наверняка можно вообще не использовать внутренний список, а выдавать посчитанное значение по мере необходимости через yield return и вычислять на лету.
    Ответ написан
    1 комментарий
  • Как обойти ограничение точности типа double в C#?

    @carbon88
    .NET developer/ORM developer
    1) Есть тип Decimal. Можете попробовать его. У него точность побольше будет чем у double. Если нужно еще больше, то вам уже нужно реализовывать математику больших чисел.
    Ответ написан
  • Как остановить выполнение SqlCommand?

    @carbon88
    .NET developer/ORM developer
    Cancel() не всегда отменяет запрос. он только пытается отменить. скажите как он отменит что-либо если запрос уже передан субд и она его уже выполняет?

    да а зачем его отменять? если это запрос на выборку остается только проигнорировать то, что пришло. если запрос на изменение данных, то тут вам транзакции в помощь. открываете транзакцию и по завершении работы делаете коммит этой транзакции. если пользователь нажал отмену, то делаете откат транзакции и все что, вы наизменяли в приделах этой транзакции не сохранится в базе.
    Ответ написан
    2 комментария
  • Архитектурный вопрос по Web API. Как правильно расшарить token между инстансами?

    @carbon88
    .NET developer/ORM developer
    Думаю можно использовать паттерн Singleton.
    Ответ написан
    Комментировать
  • Зачем нужны деревья выражений?

    @carbon88
    .NET developer/ORM developer
    Начинающему программисту в какой области? Если веб, то думаю не стоит сильно углубляться, по крайней мере это будет не срочно. А вот если область пересекается с трансляцией, например, из того же Linq во что-то другое, например, в SQL запрос, то думаю стоит ознакомиться.
    Ответ написан
    Комментировать