Отмена задачи на компьютере: Как закрыть зависшую программу или игру в Windows 11 и Windows 10

Содержание

Как отменить все последние действия на компьютере

Интернет-сервисы › Яндекс › Как очистить историю в Яндексе › Как удалить последние действия на компьютере

Отмена последнего действия:

Чтобы отменить последнее действие, нажмите клавиши CTRL+Z. Вы также можете нажать кнопку Отменить на панели быстрого доступа. Если нужно отменить несколько действий, можно нажать кнопку «Отменить» (или клавиши CTRL+Z) несколько раз.

  1. Какая комбинация клавиш отменяет последнее действие
  2. Как на компьютере отменить задачи
  3. Как можно посмотреть последние действия на компьютере
  4. Как отменить действие в файлах
  5. Как отменить все задачи на компьютере
  6. Как вернуть назад в Питоне
  7. Как отменить свое действие на компьютере
  8. Как отменить удаление программы на компьютере
  9. Как удалить последние действия на компьютере
  10. Как отменить последнюю задачу на компьютере
  11. Как отменить задачу
  12. Как отменить установку программы на компьютере

Какая комбинация клавиш отменяет последнее действие

Вы можете отменить последнее действие, выбрав в меню изображения Правка → Отменить, но эта операция применяется так часто, что стоит запомнить комбинацию клавиш Ctrl+Z.

Как на компьютере отменить задачи

Нажмите Alt+Ctrl+Del, во вкладке «Приложения» найдите зависшую программу и нажмите «Снять» задачу. Если это не помогло, перейдите во вкладку «Процессы», найдите зависший процесс и нажмите «Завершить процесс».

Как можно посмотреть последние действия на компьютере

Нажмите кнопку «Пуск», а затем выберите параметры > конфиденциальности >журнала действий.

Как отменить действие в файлах

Если вы нечаянно удалили файл или переместили неизвестно куда папку, можно легко отменить последнее действие нажав сочетание клавиш Ctrl+Z.

Как отменить все задачи на компьютере

Закрытие зависшей программы в диспетчере задач:

1. Откройте диспетчер задач, для этого вы можете нажать сочетание клавиш Ctrl+Shift+Esc.
2. В списке запущенных процессов найдите зависшую программу или игру.
3. Выберите зависшую программу и нажмите кнопку «Снять задачу» справа внизу.

Как вернуть назад в Питоне

Вызовом через меню Правка → Отменить. Используя комбинацию клавиш клавиатуры: Ctrl+Z.

Как отменить свое действие на компьютере

Чтобы отменить действие, нажмите CTRL+Z. Чтобы отменить отмену действия, нажмите CTRL+Y.

Как отменить удаление программы на компьютере

Параметры восстановления на панели управления:

В поле поиска на панели задач введите панель управления и выберите Панель управления в списке результатов. Выберите Программы > Программы и компоненты. Щелкните правой кнопкой мыши программу, которую необходимо исправить, и выберите пункт Восстановить.

Как удалить последние действия на компьютере

Например, вы можете удалить информацию о поисковом запросе, который задали в Google, или о сайте, который посетили в Chrome:

1. Откройте страницу myactivity.google.com на компьютере.
2. Прокрутите экран вниз до списка действий.
3. Найдите действие, которое вы хотите удалить.
4. Справа от действия нажмите на значок «Удалить».

Как отменить последнюю задачу на компьютере

Если передача заданий на печать не завершена, можно отменить задания на печать с компьютера:

1.

Щелкните двойным щелчком на значке принтера в панели задач Windows.
2. Выберите имя отменяемого задания.
3. В меню [Документ] нажмите кнопку [Отменить].

Как отменить задачу

Как удалить задачу:

1. Откройте Gmail, Календарь, Chat, Диск или файл в Google Документах, Таблицах или Презентациях.
2. Справа нажмите на значок «Задачи».
3. Рядом с задачей, которую нужно удалить, нажмите на значок.
4. Выберите Удалить.
5. Если вы передумали, нажмите Отменить.

Как отменить установку программы на компьютере

Чтобы отменить загрузку программы:

1. Щелкните кнопку Пуск, выберите Настройки, щелкните Панель управления, затем щелкните Монитор загрузки программ.
2. В Мониторе загрузки программ выберите загружаемую программу из списка.
3. Щелкните Отмена.
4. В окне Загрузка программ щелкните Да для подтверждения отмены.

Как убить не отвечающие программы без диспетчера задач • Оки Доки

Это расстраивает, когда программы Windows аварийно завершают работу. Все нажали на что-то в приложении только для того, чтобы закрасить окно и показать страшное Не отвечает текст.

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

Как заставить программу закрыть легкий путь

Чтобы принудительно закрыть программу без диспетчера задач, вы можете использовать Taskkill команда. Как правило, вы вводите эту команду в командной строке, чтобы завершить определенный процесс. Тем не менее, неуклюже открывать окно командной строки каждый раз, когда программа перестает отвечать, и вводить команду каждый раз — пустая трата времени. Вы можете принудительно закрыть окна с помощью ярлыка.

Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)

Сначала щелкните правой кнопкой мыши пустое место на рабочем столе и выберите New> Ярлык, Вам будет предложено ввести местоположение для ярлыка. В этом поле вставьте следующую команду:

taskkill / f / fi "status eq not response"

Эта команда проста для понимания, когда вы ее разбиваете:

  • Taskkill это команда, чтобы убить процесс, который вы должны делать, когда что-то заморожено.
  • / е говорит команде принудительно закрыть программу. Без этого Windows просто просит завершить процесс, который не будет работать, если он застрянет.
  • / ц указывает команде на выполнение только в тех процессах, которые соответствуют следующим критериям фильтра.
  • Наконец, текст в кавычках является критерием команды. Вы хотите, чтобы он убивал только процессы со статусом, равным Не отвечает,

Окно создания ярлыка попросит вас назвать новый ярлык. Назовите это как хотите, затем нажмите Конец, Теперь вы можете принудительно закрыть программу, дважды щелкнув по этому ярлыку. Это убьет любое застрявшее окно.

Как принудительно закрыть в Windows с помощью сочетания клавиш

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

Щелкните правой кнопкой мыши на вашем новом ярлыке и выберите свойства, Под кратчайший путь нажмите на вкладку Быстрая клавиша поле для установки пользовательского сочетания клавиш. Windows автоматически добавит Ctrl + Alt на любую букву, которую вы нажимаете, но вы можете изменить ее на Ctrl + Shift если хочешь.

Поскольку этот ярлык на мгновение запускает окно командной строки, вы можете установить Бежать в Минимизация, Это означает, что при нажатии на ярлык вы не увидите кратковременную вспышку, вызывающую помехи.

Альтернативные методы принудительного закрытия в Windows

Вышеуказанный метод является наиболее простым способом принудительно закрыть программы, когда они заблокированы. Тем не менее, есть некоторые другие методы и инструменты, которые вы могли бы знать для этого.

Попробуйте сначала закрыть Alt + F4

Основной шаг устранения неполадок, когда программы зависают, нажимает Alt + F4, Это сочетание клавиш Windows для закрытия текущего окна, эквивалентное нажатию кнопки Икс значок в правом верхнем углу окна.

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

Как заставить программу закрыться с SuperF4

SuperF4 — это простая программа, которая позволяет принудительно уничтожать любое окно, даже если оно не отвечает. Словно Taskkill Команда, рассмотренная выше, заставляет программы немедленно останавливаться, вместо того, чтобы их задавать.

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

Принудительное закрытие программ с помощью диспетчера задач

Технически, другой способ принудительного закрытия программ без диспетчера задач — использование альтернативы диспетчера задач.

5 мощных альтернатив для диспетчера задач Windows

5 мощных альтернатив для диспетчера задач Windows
Task Killer будет лучшим названием для собственного диспетчера задач Windows, поскольку мы используем его только для уничтожения неотвечающих процессов. Альтернативные менеджеры задач позволяют вам фактически управлять вашими процессами.
Прочитайте больше

, Например, если вы ищете что-то с большей мощностью, Process Explorer определенно удовлетворит эту потребность.

Как принудительно закрыть программы с помощью AutoHotkey

Вы также можете создать базовый скрипт AutoHotkey для принудительного закрытия окон. Вам нужно скачать AutoHotkey, а затем создать скрипт с этой строкой:

#! Q :: WinKill, A

Переместите готовый файл в папку «Автозагрузка» (введите оболочка: запуск в адресную строку File Explorer, чтобы попасть туда), поэтому он запускается каждый раз, когда вы входите в систему. Затем просто нажмите Win + Alt + Q убить текущее окно.

Другие сторонние приложения для принудительного закрытия программ

Если ни один из перечисленных выше вариантов не работает для вас, вы найдете другие сторонние инструменты, которые могут принудительно закрыть программы Windows. ProcessKO — хороший вариант для опытных пользователей, так как он предлагает дополнительные функции, такие как возможность убивать определенный процесс через заданный интервал времени.

Большинство других вариантов очень похожи на описанные выше, поэтому мы рекомендуем проверить их все, прежде чем искать альтернативу.

Окна с принудительным закрытием никогда не были проще

Надеюсь, вам не придется иметь дело с программами, которые слишком часто зависают. Если у вас есть постоянная проблема с определенным программным обеспечением, возможно, стоит проверить наличие обновлений или найти замену. Как и в случае сбоя Windows, почти всегда существует причина, по которой у программы возникают проблемы.

Несмотря на это, случайный сбой является печальной реальностью, с которой имеет дело каждый пользователь компьютера. Сходство, еще одна распространенная проблема, с которой вы можете столкнуться — заблокированные файлы в проводнике. Это поправимо! Узнайте, как удалить файл, который используется другой программой

Как удалить файл, используемый другой программой

Как удалить файл, используемый другой программой
Windows говорит, что ваш файл используется, потому что он открыт в другой программе? Мы покажем вам, как принудительно переименовать, удалить или переместить файл.
Прочитайте больше

,

Узнайте больше о: командной строке, сочетаниях клавиш, управлении задачами, устранении неполадок, хитростях Windows.

Нет звука на вашем компьютере? Попробуйте, когда ваши колонки не работаютWindows 10 теперь позволяет быстро удалить оборудование

docs/cancel-an-async-task-or-a-list-of-tasks.md на главной · dotnet/docs · GitHub

описание название мс.дата мс.актив

Подробнее об отмене асинхронной задачи или списка задач (Visual Basic)

Отмена асинхронной задачи или списка задач

20.07.2015

а9ее1б71-5бек-4736-а1е9-448042дд7215

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

В примерах используется пользовательский интерфейс, описанный в разделе «Точная настройка асинхронного приложения (Visual Basic)».

[!ПРИМЕЧАНИЕ] Для выполнения примеров на вашем компьютере должны быть установлены Visual Studio 2012 или более поздней версии и .NET Framework 4.5 или более поздней версии.

Отменить задачу

В первом примере кнопка Отмена связана с одной задачей загрузки. Если вы нажмете кнопку, когда приложение загружает содержимое, загрузка будет отменена.

Загрузка примера

Вы можете загрузить полный проект Windows Presentation Foundation (WPF) из примера Async: точная настройка приложения, а затем выполнить следующие действия.

  1. Распакуйте загруженный файл и запустите Visual Studio.

  2. В строке меню выберите Файл , Открыть , Проект/Решение .

  3. В диалоговом окне Открыть проект

    откройте папку, содержащую распакованный пример кода, а затем откройте файл решения (.sln) для AsyncFineTuningVB.

  4. В Solution Explorer откройте контекстное меню для проекта CancelATask и выберите Set as StartUp Project .

  5. Нажмите клавишу F5, чтобы запустить проект.

    Нажмите клавиши Ctrl+F5, чтобы запустить проект без его отладки.

Если вы не хотите загружать проект, просмотрите файлы MainWindow.xaml.vb в конце этого раздела.

Сборка примера

Следующие изменения добавляют кнопку Отмена в приложение, загружающее веб-сайт. Если вы не хотите загружать или создавать пример, вы можете ознакомиться с конечным продуктом в разделе «Полные примеры» в конце этого раздела. Звездочками отмечены изменения в коде.

Чтобы построить пример самостоятельно, шаг за шагом, следуйте инструкциям в разделе «Загрузка примера», но выберите StarterCode в качестве StartUp Project вместо CancelATask .

Затем добавьте следующие изменения в файл MainWindow.xaml.vb этого проекта.

  1. Объявите переменную CancellationTokenSource , cts , доступную для всех методов, обращающихся к ней.

     Класс MainWindow
        ' *** Объявить System.Threading.CancellationTokenSource.
        Dim cts As CancellationTokenSource 
  2. Добавьте следующий обработчик событий для кнопки Отмена . Обработчик событий использует метод xref:System.Threading.CancellationTokenSource.Cancel%2A?displayProperty=nameWithType для уведомления cts , когда пользователь запрашивает отмену.

     ' ***Добавить обработчик события для кнопки "Отмена". 
    Private Sub cancelButton_Click (отправитель как объект, e как RoutedEventArgs)
        Если cts не ничто, то
            cts.Отмена()
        Конец, если
    Конец суб 
  3. Внесите следующие изменения в обработчик событий для кнопки Start , startButton_Click .

    • Создать экземпляр CancellationTokenSource , cts .

       ' *** Создайте экземпляр CancellationTokenSource.
      cts = Новый CancellationTokenSource() 
    • При вызове AccessTheWebAsync , который загружает содержимое указанного веб-сайта, отправьте свойство xref:System.Threading.CancellationTokenSource.Token%2A?displayProperty=nameWithType со значением 9.0113 cts

      в качестве аргумента. Свойство Token распространяет сообщение, если запрашивается отмена. Добавьте блок catch, который отображает сообщение, если пользователь решит отменить операцию загрузки. Следующий код показывает изменения.

       Попробовать
          ' *** Отправьте токен для передачи сообщения, если запрашивается отмена.
          Dim contentLength As Integer = Await AccessTheWebAsync(cts.Token)
          результатыTextBox.Text &=
              vbCrLf & $"Длина загруженной строки: {contentLength}." & vbCrLf
          ' *** Если запрашивается отмена, возникает исключение OperationCanceledException.
      Поймать ex As OperationCanceledException
          resultsTextBox.Text &= vbCrLf & "Загрузка отменена". & vbCrLf
      Поймать экс как исключение
          resultsTextBox.Text &= vbCrLf & "Ошибка загрузки". & vbCrLf
      Конец попытки 
  4. В AccessTheWebAsync

    используйте перегрузку xref:System.Net.Http.HttpClient.GetAsync%28System.String%2CSystem.Threading.CancellationToken%29?displayProperty=nameWithType метода GetAsync в xref:System.Net. Тип Http.HttpClient для загрузки содержимого веб-сайта. Передайте ct , параметр xref:System.Threading. CancellationToken AccessTheWebAsync , в качестве второго аргумента. Маркер несет сообщение, если пользователь выбирает Кнопка отмены .

    В следующем коде показаны изменения в AccessTheWebAsync .

     ' *** Укажите параметр для CancellationToken.
    Асинхронная функция AccessTheWebAsync(ct As CancellationToken) As Task(Of Integer)
        Dim client As HttpClient = New HttpClient()
        resultsTextBox.Text &= vbCrLf & "Готово к загрузке." & vbCrLf
        «Возможно, вам придется замедлить ход событий, чтобы иметь возможность отменить.
        Ожидание задачи.Задержка(250)
        ' GetAsync возвращает Task(Of HttpResponseMessage).
        ' ***Аргумент ct несет сообщение, если выбрана кнопка Cancel.
        Тусклый ответ As HttpResponseMessage = Await client.GetAsync("https://msdn.microsoft.com/library/dd470362.aspx", ct)
        ' Получить содержимое веб-сайта из HttpResponseMessage.
        Dim urlContents As Byte() = Ожидание ответа.Content.ReadAsByteArrayAsync()
        ' Результатом метода является длина загруженного веб-сайта.
    Возврат urlContents.Length Завершить функцию
  5. Если вы не отмените программу, она выдаст следующий результат:

     Готов к загрузке.
    Длина загружаемой строки: 158125. 

    Если вы нажмете кнопку Отмена до того, как программа завершит загрузку содержимого, программа выдаст следующий вывод:

     Готов к загрузке.
    Загрузка отменена. 

Отмена списка задач

Вы можете расширить предыдущий пример, чтобы отменить многие задачи, связав те же самые Экземпляр CancellationTokenSource с каждой задачей. Если вы нажмете кнопку Cancel , вы отмените все задачи, которые еще не завершены.

Загрузка примера

Вы можете загрузить полный проект Windows Presentation Foundation (WPF) из примера Async: точная настройка приложения, а затем выполнить следующие действия.

  1. Распакуйте загруженный файл и запустите Visual Studio.

  2. В строке меню выберите Файл , Открыть , Проект/Решение .

  3. В диалоговом окне Открыть проект откройте папку, содержащую распакованный пример кода, а затем откройте файл решения (.sln) для AsyncFineTuningVB.

  4. В Solution Explorer откройте контекстное меню для проекта CancelAListOfTasks и выберите Set as StartUp Project .

  5. Нажмите клавишу F5, чтобы запустить проект.

    Нажмите клавиши Ctrl+F5, чтобы запустить проект без его отладки.

Если вы не хотите загружать проект, просмотрите файлы MainWindow.xaml.vb в конце этого раздела.

Сборка примера

Чтобы самостоятельно расширить пример, шаг за шагом следуйте инструкциям в разделе «Загрузка примера», но выберите CancelATask в качестве StartUp Project . Добавьте следующие изменения в этот проект. Звездочками отмечены изменения в программе.

  1. Добавьте метод для создания списка веб-адресов.

     ' ***Добавьте метод, создающий список веб-адресов.
    Частная функция SetUpURLList() как список (строка)
        Dim urls = Новый список (из строки) из
            {
                "https://msdn.microsoft.com",
                "https://msdn.microsoft.com/library/hh3
      .aspx", "https://msdn.microsoft.com/library/hh3

      .aspx", "https://msdn.microsoft.com/library/dd470362.aspx", "https://msdn.microsoft.com/library/aa578028.aspx", "https://msdn.microsoft.com/library/ms404677.aspx", "https://msdn.microsoft.com/library/ff730837.aspx" } Вернуть URL Завершить функцию

  2. Вызов метода в AccessTheWebAsync .

     ' ***Вызовите SetUpURLList, чтобы составить список веб-адресов.
    Dim urlList как список (из строки) = SetUpURLList () 
  3. Добавьте следующий цикл в AccessTheWebAsync для обработки каждого веб-адреса в списке.

     ' ***Добавить цикл для обработки списка веб-адресов.
    Для каждого URL-адреса в urlList
        ' GetAsync возвращает Task(Of HttpResponseMessage).
        ' Аргумент ct несет сообщение, если выбрана кнопка Cancel.
        ' *** Обратите внимание, что кнопка «Отмена» может отменить все оставшиеся загрузки.
        Тусклый ответ As HttpResponseMessage = Await client.GetAsync(url, ct)
        ' Получить содержимое веб-сайта из HttpResponseMessage.
        Dim urlContents As Byte() = Ожидание ответа.Content.ReadAsByteArrayAsync()
        результатыTextBox.Text &=
            vbCrLf & $"Длина загруженной строки: {urlContents.Length}." & vbCrLf
    Следующие 
  4. Поскольку AccessTheWebAsync отображает длины, методу не нужно ничего возвращать. Удалите оператор return и измените тип возвращаемого значения метода на xref:System.Threading.Tasks.Task вместо xref:System.Threading.Tasks.Task%601.

     Асинхронная функция AccessTheWebAsync(ct As CancellationToken) As Task 

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

     Ожидание AccessTheWebAsync(cts.Token) 
  5. Если вы не отмените программу, она выдаст следующий результат:

     Длина загружаемой строки: 35939.
    Длина загружаемой строки: 237682.
    Длина загружаемой строки: 128607.
    Длина загружаемой строки: 158124.
    Длина загруженной строки: 204890.
    Длина загруженной строки: 175488.
    Длина загружаемой строки: 145790.
    Загрузка завершена. 

    Если вы нажмете кнопку Отмена до того, как загрузка будет завершена, выходные данные будут содержать продолжительность загрузок, которые были завершены до отмены.

     Длина загружаемой строки: 35939.
    Длина загружаемой строки: 237682.
    Длина загружаемой строки: 128607.
    Загрузки отменены. 

Полные примеры

Следующие разделы содержат код для каждого из предыдущих примеров. Обратите внимание, что вы должны добавить ссылку на xref:System.Net.Http.

Вы можете загрузить проекты из примера Async: точная настройка приложения.

Пример отмены задачи

Следующий код представляет собой полный файл MainWindow.xaml.vb для примера, который отменяет одну задачу.

 'Добавить директиву Imports и ссылку для System.Net.Http.
Импортирует System.Net.Http
' Добавьте следующую директиву Imports для System.Threading.
Импортирует System.Threading
Класс MainWindow
    ' *** Объявить System.Threading.CancellationTokenSource.
    Dim cts как CancellationTokenSource
    Private Async Sub startButton_Click (отправитель как объект, e как RoutedEventArgs)
        ' *** Создайте экземпляр CancellationTokenSource.
        cts = новый источник токена отмены ()
        результатыTextBox.Clear()
        Пытаться
            ' *** Отправьте токен для передачи сообщения, если запрашивается отмена.
            Dim contentLength As Integer = Await AccessTheWebAsync(cts.Token)
            результатыTextBox.Text &=
                vbCrLf & $"Длина загруженной строки: {contentLength}." & vbCrLf
            ' *** Если запрашивается отмена, возникает исключение OperationCanceledException. 
        Поймать ex As OperationCanceledException
            resultsTextBox.Text &= vbCrLf & "Загрузка отменена". & vbCrLf
        Поймать экс как исключение
            resultsTextBox.Text &= vbCrLf & "Ошибка загрузки". & vbCrLf
        Завершить попытку
        ' ***По завершении загрузки установите для CancellationTokenSource значение Nothing.
        кт = ничего
    Конец сабвуфера
    ' ***Добавить обработчик события для кнопки "Отмена".
    Private Sub cancelButton_Click (отправитель как объект, e как RoutedEventArgs)
        Если cts не ничто, то
            cts.Отмена()
        Конец, если
    Конец сабвуфера
    ' ***Укажите параметр для CancellationToken.
    Асинхронная функция AccessTheWebAsync(ct As CancellationToken) As Task(Of Integer)
        Dim client As HttpClient = New HttpClient()
        результатыTextBox.Text &=
            vbCrLf & «Готово к загрузке». & vbCrLf
        «Возможно, вам придется замедлить ход событий, чтобы иметь возможность отменить.
        Ожидание задачи. Задержка(250)
        ' GetAsync возвращает Task(Of HttpResponseMessage).
        ' ***Аргумент ct несет сообщение, если выбрана кнопка Cancel.
        Тусклый ответ As HttpResponseMessage = Await client.GetAsync("https://msdn.microsoft.com/library/dd470362.aspx", ct)
        ' Получить содержимое веб-сайта из HttpResponseMessage.
        Dim urlContents As Byte() = Ожидание ответа.Content.ReadAsByteArrayAsync()
        ' Результатом метода является длина загруженного веб-сайта.
        Возврат urlContents.Length
    Конечная функция
Конец класса
' Вывод для успешной загрузки:
' Готов к загрузке.
' Длина загруженной строки: 158125.
' Или, если вы отмените:
' Готов к загрузке.
' Загрузка отменена. 

Отмена списка задач Пример

Следующий код представляет собой полный файл MainWindow.xaml.vb для примера, который отменяет список задач.

 'Добавить директиву Imports и ссылку для System.Net.Http.
Импортирует System.Net.Http
' Добавьте следующую директиву Imports для System. Threading.
Импортирует System.Threading
Класс MainWindow
    ' Объявить System.Threading.CancellationTokenSource.
    Dim cts как CancellationTokenSource
    Private Async Sub startButton_Click (отправитель как объект, e как RoutedEventArgs)
        ' Создайте экземпляр CancellationTokenSource.
        cts = новый источник токена отмены ()
        результатыTextBox.Clear()
        Пытаться
            ' ***AccessTheWebAsync возвращает задачу, а не задачу (целого числа).
            Ожидание AccessTheWebAsync(cts.Token)
            ' *** Небольшие изменения в строках дисплея.
            resultsTextBox.Text &= vbCrLf & "Загрузка завершена".
        Поймать ex As OperationCanceledException
            resultsTextBox.Text &= vbCrLf & "Загрузки отменены". & vbCrLf
        Поймать экс как исключение
            resultsTextBox.Text &= vbCrLf & "Ошибка загрузки". & vbCrLf
        Завершить попытку
        ' После завершения загрузки установите для CancellationTokenSource значение Nothing.
        кт = ничего
    Конец сабвуфера
    'Добавить обработчик события для кнопки Отмена. 
    Private Sub cancelButton_Click (отправитель как объект, e как RoutedEventArgs)
        Если cts не ничто, то
            cts.Отмена()
        Конец, если
    Конец сабвуфера
    ' Укажите параметр для CancellationToken.
    ' *** Измените тип возвращаемого значения на Task, поскольку в методе нет оператора return.
    Асинхронная функция AccessTheWebAsync(ct As CancellationToken) As Task
        Dim client As HttpClient = New HttpClient()
        ' ***Вызовите SetUpURLList, чтобы составить список веб-адресов.
        Dim urlList как список (из строки) = SetUpURLList()
        ' ***Добавить цикл для обработки списка веб-адресов.
        Для каждого URL-адреса в urlList
            ' GetAsync возвращает Task(Of HttpResponseMessage).
            ' Аргумент ct несет сообщение, если выбрана кнопка Cancel.
            ' *** Обратите внимание, что кнопка «Отмена» может отменить все оставшиеся загрузки.
            Тусклый ответ As HttpResponseMessage = Await client.GetAsync(url, ct)
            ' Получить содержимое веб-сайта из HttpResponseMessage. 
            Dim urlContents As Byte() = Ожидание ответа.Content.ReadAsByteArrayAsync()
            результатыTextBox.Text &=
                vbCrLf & $"Длина загруженной строки: {urlContents.Length}." & vbCrLf
        Следующий
    Конечная функция
    ' ***Добавьте метод, который создает список веб-адресов.
    Частная функция SetUpURLList() как список (строка)
        Dim urls = Новый список (из строки) из
            {
                "https://msdn.microsoft.com",
                "https://msdn.microsoft.com/library/hh3
    .aspx", "https://msdn.microsoft.com/library/hh3

    .aspx", "https://msdn.microsoft.com/library/dd470362.aspx", "https://msdn.microsoft.com/library/aa578028.aspx", "https://msdn.microsoft.com/library/ms404677.aspx", "https://msdn.microsoft.com/library/ff730837.aspx" } Вернуть URL Конечная функция Конец класса ' Вывод, если вы не выбрали отмену: ' Длина загруженной строки: 35939. ' Длина загруженной строки: 237682. ' Длина загруженной строки: 128607. ' Длина загруженной строки: 158124. ' Длина загруженной строки: 204890. ' Длина загруженной строки: 175488. ' Длина загруженной строки: 145790. 'Загрузки завершены. ' Пример вывода, если вы решите отменить: ' Длина загруженной строки: 35939. ' Длина загруженной строки: 237682. ' Длина загруженной строки: 128607. 'Загрузки отменены.

См. также

  • xref:System.Threading.CancellationTokenSource
  • xref:System.Threading.CancellationToken
  • Асинхронное программирование с помощью Async и Await (Visual Basic)
  • Тонкая настройка асинхронного приложения (Visual Basic)
  • Пример асинхронного режима: точная настройка приложения

ups — Отмена/блокировка задачи, запущенной с задержкой из-за «планировщика задач» Windows

Задавать вопрос

спросил

Изменено 8 лет, 1 месяц назад

Просмотрено 695 раз

Это связано с конкретной проблемой, но я думаю, что это «интересный» вопрос для общего пользования: в Windows (в частности, на сервере 2k8 для меня) у вас есть задача, которая запускается событием (в частности, ИБП выходит из строя). от батареи из-за сбоя питания) с задержкой (аккумулятора хватит минимум на 15 минут), а затем выполнить какое-либо действие (в частности, выключение /s /t 60 /d U:6:12). Но есть какое-то другое событие (в частности, ИБП отключает батарею, потому что питание было восстановлено), которое затем должно блокировать выполнение первой задачи (в частности, не выключать), ЕСЛИ это происходит во время задержки.

Я начал думать об этом, потому что программное обеспечение для управления отключением сервера, поставляемое с моим ИБП, чистое… о, я должен быть вежливым, не так ли? … гм… очень, очень нехорошо. Вот я и подумал, как обеспечить стандартное отключение до того, как батарея разрядится без него. Обычно система получала сообщение от ИБП о скором разряде батареи, а затем отключалась. Этот ИБП НЕ отправляет это сообщение. Он отправляет «Я на батарее», «Я на переменном токе» и тому подобное. является. это. Нет сообщения для «Я скоро умру».

Но я думаю, что это может быть полезным трюком и в других ситуациях. Каждый раз, когда есть что-то, что вы хотите сделать после того, как какое-то время что-то происходило без восстановления. Например. если вы не можете связаться с удаленным ПК в течение некоторого периода времени, отправьте сообщение на интеллектуальный удлинитель, чтобы выключить его… Но не в том случае, если связь восстановлена. Или, если вы какое-то время не могли получить данные из одного источника, переключитесь на резервный источник данных… Но только не в том случае, если основной источник начнет отвечать.

Можно ли это сделать? Я не вижу выхода…

  • windows
  • ups
  • планировщик задач

2

Расширение подхода Райана с использованием 2 задач, одна из которых запускается «Power Gone», а задача с кнопкой «Прервать», запускаемая событием «Power Restore»

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

Задача PowerGone:

 Send-MailMessage -To "james@company. tld" -Body "Инициирована последовательность самоуничтожения, T-10m"
# Мы все еще можем прервать эту задачу
Старт-Сон-Секунд 600
Send-MailMessage -To "[email protected]" -Subject "Уведомление о расторжении..."
Старт-Имплозия-Сила
 

Задача PowerBack:

 $TaskScheduler = New-Object -ComObject Schedule.Service
$TaskScheduler.Connect("локальный хост")
$TargetTask = $TaskScheduler.GetFolder('\').GetTask('PowerGone')
$TargetTask.Stop()
 

3

Отличная идея. Я бы написал это для вас на Powershell или C# за несколько часов за очень скромную плату. 😉

Шучу. Как насчет этого…

Используйте планировщик заданий для создания двух заданий. Каждая задача будет запускаться по событию журнала событий. Задача номер один будет запускаться на основе события «Отсутствует питание переменного тока» и будет выполнять действие, например shutdown /s /t 1200 , для выключения системы с задержкой в ​​1200 секунд.

Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *