All streams
Search
Write a publication
Pull to refresh
-11
0.4
Send message

Но погодите, обличать, клеймить и критиковать-то можно! А конструктивная критика может быть информативной.

И в примерах тоже ждут ответа от внешнего ресурса. Но в чем принципиальное отличие между ожиданием ответа сервера и выполнением вычислений? В обоих случаях крутится некоторый объем кода.

Я отказался от сторонних апдейтов на UI, т.к. если UI не блокируется, то он спокойно обновляет своё состояние сам. Достаточно обновлять данные в контролах.

Проблема не в том, что предпринять, чтобы не быть обманутым, а в том организационном балагане, где можно проводить СЕКРЕТНЫЕ, мать их, транзакции под честное слово начальника. Хотя мог бы сказать "без проблем, ща всё будет" и провести из запросом через бухгалтерию и фин мониторинг, а морду кирпичом сделать.

Спасибо за подсказку, вот рабочий вариант.

Hidden text
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private Task asyncTask1()
        {
            int n1 = 0;
            while (n1 < 1000000000)
            {
                n1++;
                Invoke(new Action(() => { textBox1.Text = n1.ToString(); }));
                Thread.Sleep(1000); // чтобы не спамил в UI
            }
            return Task.CompletedTask;
        }

        private async void button1_Click(object sender, EventArgs e)
        {
            await Task.Run(() => asyncTask1());
        }
    }

textBox1.Update() не нужен, UI-поток сам обновляет контролы.

Но было такое ощущение, что async/await уже научили задействовать таски под капотом...

Как крутить while отдельно от основной задачи? While тут для имитации действий, где нельзя срезать углы, т.е. все операции и вычисления должны быть произведены полностью и без блокировки формы.

Не обязательно на отдельном вычислительном ядре, ну хоть в отдельном таймслайсе.

была идея создать длительное асинхронное выполнение функции, которая обновляет элементы интерфейса, но не блокирует его основную работу в UI-потоке.

нет нет, постойте... да это же глоток свежего воздуха в индустрии камвхоринга!

Бюджет пополняют чтобы тратить! Если не тратить, то не получится объяснить требование к бюджету, а это моветон в госуправлении.

Телефон в нагрудном кармане тоже не привлекает внимание - проверено, но снимает отлично. Всем пофиг. А очки с камерой, ооооо - шпионское оборудование!

Большегрузный автомобиль пройдет через 5 таких заграждений, но что-то менять заграждения никто не торопится когда водитель фуры неожиданно просыпается в канаве. Где инфраструктура будущего для грузовиков? Это же очередной распил!

Вот написал асинхронный UI, но форма блочится. Что не так?

код
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private Task asyncTask1()
        {
            int n1 = 0;
            while (n1 < 10000000)
            {
                n1++;
                textBox1.Text = n1.ToString();
                textBox1.Update();
            }
            return Task.CompletedTask;
        }

        private async void button1_Click(object sender, EventArgs e)
        {
            await asyncTask1();
        }
    }

В цветных лазерных принтерах тоже одноцветные точки, просто четырех разных цветов.

Вот они!

Да это даже с женскими сумками работает! Дамы сено жуют, с зарплаты откладывают.

По ходу это был секретный проект по освоению бюджета.

-- Михалыч, смотри!

Information

Rating
2,160-th
Registered
Activity