Является ли рабочий рабочий потоком? Когда я должен его использовать?Является ли рабочий рабочий потоком? (C#)
ответ
Да, это в основном как нить, но с дополнительными функциями (события, чтобы уведомить вас о прогрессе и когда он закончится) ,
Вы должны использовать его каждый раз, когда вам нужно выполнить что-то, что может занять некоторое время (например, вычисление, чтение и запись файлов или баз данных, веб-запросы и т. Д.), И вы не хотите, чтобы графический интерфейс выглядел невосприимчивым, пока он :
Класс BackgroundWorker позволяет запускать операцию в отдельном выделенном потоке. Длительные операции, такие как загрузки и транзакции базы данных, могут привести к тому, что пользовательский интерфейс (UI) выглядит так, как будто он перестает отвечать на запросы во время работы. Когда вам нужен гибкий пользовательский интерфейс, и вы столкнулись с большими задержками, связанными с такими операциями, класс BackgroundWorker обеспечивает удобное решение.
Read How to: Run an Operation in the Background для введения.
спасибо sir (10x) .. :) – yonan2236
Простой пример:
static void Main(string[] args)
{
BackgroundWorker worker = new BackgroundWorker();
//DoWork is a delegate, where you can add tasks
worker.DoWork += (sender, e) =>
{
//blabla
};
worker.DoWork += (sender, e) =>
{
//blabla
};
worker.RunWorkerCompleted += (sender, e) =>
{
var IfYouWantTheResult = e.Result;
//maybe notify others here
};
worker.RunWorkerAsync();
//you can cancel the worker/report its progress by its methods.
}
Для получения более подробной информации, проверьте here
Фоновый работник - это в основном поток с добавлением, что он перезвонит по завершении, и этот обратный вызов будет в контексте U.I. , чтобы вы могли обновить U.I. по завершении.
Если вам нужен этот обратный вызов после его завершения в контексте U.I. thread - используйте его. В противном случае вы должны просто использовать обычный поток.
вот пример кода приложения, который отображает прогрессную панель при загрузке sth. с использованием фона рабочего
http://devtoolshed.com/content/c-download-file-progress-bar
и вот краткий учебник о фоне рабочего
http://www.dotnetperls.com/backgroundworker
я предлагаю вам использовать его, когда у вас есть много времени операции (загрузка файла и т.д.), и вы хотите, чтобы пользовательский интерфейс был активным. это полезная функция, если вы хотите показать прогресс на интерфейсе, например, показывать процент на метке или использовать панель прогресса.
Я особенно использую его с контроллером progressbar.
- 1. Синхронизирующий рабочий с потоком пользовательского интерфейса
- 2. Рабочий рабочий C# заморозил графический интерфейс
- 3. Загрузочный рабочий рабочий
- 4. Создает ли TTimer.OnTimer рабочий поток для синхронизации с основным потоком?
- 5. ASP.NET глобальный рабочий рабочий поток
- 6. C# Фоновый рабочий класс
- 7. Рабочий пример QProcess - C++
- 8. Excel interop: рабочий стол или рабочий лист?
- 9. RxJS и Master/Рабочий рабочий процесс
- 10. Рабочий поток и Dipose()
- 11. Странный рабочий цикл в C
- 12. C# read excel рабочий лист
- 13. Как изменить рабочий процесс?
- 14. Мой рабочий рабочий сообщает более 100 процентов
- 15. Рабочий лист
- 16. Должен ли рабочий поток спать?
- 17. Можно ли снять рабочий крюк?
- 18. Ссылка на рабочий стол C#
- 19. C#, рабочий класс рабочего класса
- 20. C# - Рабочий лист Наследование VSTO
- 21. Является ли std :: exception_ptr потоком безопасным?
- 22. C# Является ли этот метод потоком безопасным?
- 23. Является ли конструктор потоком C# безопасным?
- 24. Рабочий процесс Sharepoint и рабочий процесс Windows
- 25. Как программно изменить рабочий процесс между задачами управления потоком SSIS?
- 26. Resque: рабочий статус не является правильным
- 27. Как определить, является ли текущий рабочий каталог корнем проекта Rails
- 28. Является ли этот разбросанный рабочий процесс реализуемым в Git?
- 29. Как узнать, является ли HWND сам рабочий стол?
- 30. Определить, является ли рабочий лист пустым в openpyxl
Я неправильно понял сейчас? Я видел, что вы спрашиваете: «Как мне его использовать», но теперь он становится «Когда я должен его использовать»? –
все нормально, сэр. Спасибо – yonan2236