powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Замена для backgroundWorker.
42 сообщений из 42, показаны все 2 страниц
Замена для backgroundWorker.
    #39126653
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
До сих пор все было хорошо. Создавал несколько backgroundWorker и работал с ними. Вобщем то был доволен. Но тут мне объяснили что это зло. А чем заменить? Thread? Task?
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39126670
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7Вобщем то был доволен. Но тут мне объяснили что это зло.

А пояснили почему зло?
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39126676
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7,

советую вам поменьше прислушиваться к необоснованным мнениям. Даже в MS на MSDN часто рекомендуют использовать BackgroudWorker.
Может это и несколько устаревшая технология, но она работает, значит заслуживает права быть.
Зло это давать глупые советы, вот это воистину зло :)
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39126681
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttjenya7Вобщем то был доволен. Но тут мне объяснили что это зло.

А пояснили почему зло?

ну вот потому что Roman Mejtes сказал - устаревшая технология.
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39126683
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я не знаю что "под капотом" у backgroundWorker.
Тут вроде все прозрачно
Код: c#
1.
2.
3.
4.
5.
6.
7.
    Thread aa = new Thread(GetData);
    aa.Start();

     или

    Task bb = new Task(GetData);
    bb.Start();
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39126684
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитай Дж. Рихтер CLR via C# . Часть V. Многопоточность.
Там все возможные варианты расписаны с плюсами и минусами. Выбери что больше подходит.
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39126685
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TПочитай Дж. Рихтер CLR via C# . Часть V. Многопоточность.
Там все возможные варианты расписаны с плюсами и минусами. Выбери что больше подходит.
спасибо. у меня эта книжка где то есть. поищу.
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39126687
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7, если не в контексте с UI, действительно, зачем они нужны?
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39126689
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где-то в степиjenya7, если не в контексте с UI, действительно, зачем они нужны?
в основном конечно что бы UI не зависал.
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39127073
blest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7,

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

По существу после выхода в C# 5.0 await/async пользуюсь только им, backgroundworker для меня отошел в историю
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39127147
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7,
В .NET асинхронные вычисления можно запустить следующими способами.
1. класс Thread
2. delegate.BeginInvoke - этот функционал использует BackgroundWorker
3. Task, начиная с C# 5.0 - await/async
4. при помощи реактивных расширений
5. Parallel class, но там тоже внутри таски
6. Как экзотика или на крайний случай, через Win API.
Вроде все, дополните если упустил чего.
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39127151
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЕвгенийВjenya7,
В .NET асинхронные вычисления можно запустить следующими способами.
1. класс Thread
2. delegate.BeginInvoke - этот функционал использует BackgroundWorker
3. Task, начиная с C# 5.0 - await/async
4. при помощи реактивных расширений
5. Parallel class, но там тоже внутри таски
6. Как экзотика или на крайний случай, через Win API.
Вроде все, дополните если упустил чего.

я думаю Thread и Task наше все. а какая разница между ними?
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39127154
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
jenya7ЕвгенийВjenya7,
В .NET асинхронные вычисления можно запустить следующими способами.
1. класс Thread
2. delegate.BeginInvoke - этот функционал использует BackgroundWorker
3. Task, начиная с C# 5.0 - await/async
4. при помощи реактивных расширений
5. Parallel class, но там тоже внутри таски
6. Как экзотика или на крайний случай, через Win API.
Вроде все, дополните если упустил чего.

я думаю Thread и Task наше все. а какая разница между ними?

о! нашел!

Код: sql
1.
2.
3.
4.
5.
In computer science terms, a Task is a future or a promise. (Some people use those two terms synomymously, some use them differently, nobody can agree on a precise definition.) Basically, a Task<T> "promises" to return you a T, but not right now honey, I'm kinda busy, why don't you come back later?

A Thread is a way of fulfilling that promise. But not every Task needs a brand-new Thread. (In fact, creating a thread is often undesirable, because doing so is much more expensive than re-using an existing thread from the threadpool. More on that in a moment.) If the value you are waiting for comes from the filesystem or a database or the network, then there is no need for a thread to sit around and wait for the data when it can be servicing other requests. Instead, the Task might register a callback to receive the value(s) when they're ready.

In particular, the Task does not say why it is that it takes such a long time to return the value. It might be that it takes a long time to compute, or it might that it takes a long time to fetch. Only in the former case would you use a Thread to run a Task. (In .NET, threads are freaking expensive, so you generally want to avoid them as much as possible and really only use them if you want to run multiple heavy computations on multiple CPUs. For example, in Windows, a thread weighs 12&#8201;KiByte (I think), in Linux, a thread weighs as little as 4&#8201;KiByte, in Erlang/BEAM even just 400&#8201;Byte. In .NET, it's 1&#8201;MiByte!)
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39127396
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВjenya7,
В .NET асинхронные вычисления можно запустить следующими способами.
1. класс Thread
2. delegate.BeginInvoke - этот функционал использует BackgroundWorker
3. Task, начиная с C# 5.0 - await/async
4. при помощи реактивных расширений
5. Parallel class, но там тоже внутри таски
6. Как экзотика или на крайний случай, через Win API.
Вроде все, дополните если упустил чего.Так же полезно классифицировать по способу выполнения:

1. Thread
2. Thread Pool
3. I/O Completion Port
4. UI Thread
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39127459
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7ЕвгенийВjenya7,
В .NET асинхронные вычисления можно запустить следующими способами.
1. класс Thread
2. delegate.BeginInvoke - этот функционал использует BackgroundWorker
3. Task, начиная с C# 5.0 - await/async
4. при помощи реактивных расширений
5. Parallel class, но там тоже внутри таски
6. Как экзотика или на крайний случай, через Win API.
Вроде все, дополните если упустил чего.

я думаю Thread и Task наше все. а какая разница между ними?Task - это абстракция, описывающая асинхронную операцию. Thread - это, кроме всего прочего, один из способов запуска асинхронной операции.
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39127597
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВjenya7,
В .NET асинхронные вычисления можно запустить следующими способами.
1. класс Thread
2. delegate.BeginInvoke - этот функционал использует BackgroundWorker
3. Task, начиная с C# 5.0 - await/async
4. при помощи реактивных расширений
5. Parallel class, но там тоже внутри таски
6. Как экзотика или на крайний случай, через Win API.
Вроде все, дополните если упустил чего.
Ах да, совсем забыл про ThreadPool.
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39127603
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КTask - это абстракция, описывающая асинхронную операцию.
Скорее управляющая асинхронной операцией, реализующая запуск, отмену, продолжение, ожидание.
Алексей КThread - это, кроме всего прочего, один из способов запуска асинхронной операции.
Это некая субстанция описывающая тред в .NET.
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39127973
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВАлексей КTask - это абстракция, описывающая асинхронную операцию.
Скорее управляющая асинхронной операцией, реализующая запуск, отмену, продолжение, ожидание.описывающая == структура данных + поведение.
ЕвгенийВАлексей КThread - это, кроме всего прочего, один из способов запуска асинхронной операции.
Это некая субстанция описывающая тред в .NET."Кроме всего прочего" (ц) выше

Здесь интересно описание Thread применительно к Task.
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39127974
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиjenya7, если не в контексте с UI, действительно, зачем они нужны?Оптимизация - уменьшение количества потоков, ожидающих I/O.
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39128019
AlexUser987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7До сих пор все было хорошо. Создавал несколько backgroundWorker и работал с ними. Вобщем то был доволен. Но тут мне объяснили что это зло. А чем заменить? Thread? Task?
Я понимаю, конечно, что всё и раньше прекрасно работало. Но ради общего развития и подготовки к будущему рекомендовал бы изучить Task и async/await - BackgroundWorker после этого покажется каким-то узкоспециализированным костылём. Даже если вы не перестанете использовать BackgroundWorker, вы хотя бы будете знать, как вообще в современном дотнете делают многопоточные вещи. В ближайшем будущем без тасков и асинков никуда, а BackgroundWorker сам забудется, как нишевый костыль, который использовали, пока лучше ничего не было.
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39128020
AlexUser987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexUser987В ближайшем будущем без тасков и асинков никуда
Причём, это не только в дотнете - в джаве и джаваскрипте тоже аналоги делают или сделали. Т. е. это очень широкий тренд. Скоро без знания асинков и тасков на работу брать не будут, да и на текущих будут требовать, скорее всего. А скорее всего, уже не берут и требуют.
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39128022
AlexUser987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7,

Создайте новый проект на WCF или ASP.NET MVC - там асинки по умолчанию в шаблонном проекте. Если вас не напрягает, что вы не понимаете, что это такое и как работает, то всё в порядке. Но я ещё раз вам говорю, что если раньше вам хватало только BackgroundWorker, "чтобы интерфейс не тормозил", то сейчас многопоточность становится (уже стала) таким же базовым навыком, как ООП.
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39128035
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexUser987AlexUser987В ближайшем будущем без тасков и асинков никуда
Причём, это не только в дотнете - в джаве и джаваскрипте тоже аналоги делают или сделали. Т. е. это очень широкий тренд. Скоро без знания асинков и тасков на работу брать не будут, да и на текущих будут требовать, скорее всего. А скорее всего, уже не берут и требуют.
Да, да, да. Вот наберём в следующем году человек 30 без требования знания асинков и тасков, а дальше все, прикроем лавочку.

Ну что за глупости :) Заного зарегистрировался на сайте, чтобы флудить о чем попало?
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39128038
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexUser987Если вас не напрягает, что вы не понимаете, что это такое и как работает, то всё в порядке.

Погодите, а без какого рода знаний async/await уже не берут на работу?
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39128342
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexUser987jenya7,

Создайте новый проект на WCF или ASP.NET MVC - там асинки по умолчанию в шаблонном проекте. Если вас не напрягает, что вы не понимаете, что это такое и как работает, то всё в порядке. Но я ещё раз вам говорю, что если раньше вам хватало только BackgroundWorker, "чтобы интерфейс не тормозил", то сейчас многопоточность становится (уже стала) таким же базовым навыком, как ООП.

я много чего не понимаю как это работает. однако успешно этим пользуюсь. :)
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39128442
AlexUser987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребята, у вас плохо с английским юмором. Может, вам ещё вчерашних раков сегодня за 3 рубля загнать?
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39128446
AlexUser987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7AlexUser987jenya7,

Создайте новый проект на WCF или ASP.NET MVC - там асинки по умолчанию в шаблонном проекте. Если вас не напрягает, что вы не понимаете, что это такое и как работает, то всё в порядке. Но я ещё раз вам говорю, что если раньше вам хватало только BackgroundWorker, "чтобы интерфейс не тормозил", то сейчас многопоточность становится (уже стала) таким же базовым навыком, как ООП.

я много чего не понимаю как это работает. однако успешно этим пользуюсь. :)
Главное в жизни - не передумать, после того, как прыгнул.
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39128449
AlexUser987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЗаного зарегистрировался на сайте, чтобы флудить о чем попало?
(приподнял бровь) ???
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39128490
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAНу что за глупости :) Заного зарегистрировался на сайте, чтобы флудить о чем попало?
Не похоже по стилю и вежливости на персонажа, о котором я подумал ;)
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39128515
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronskyANAНу что за глупости :) Заного зарегистрировался на сайте, чтобы флудить о чем попало?
Не похоже по стилю и вежливости на персонажа, о котором я подумал ;)Это не про nnewone . Просто был тут персонаж, кто также любил писать много постов по много букофф с выводами, не понятно из чего взятыми.
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39128521
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexUser987Ребята, у вас плохо с английским юмором. Может, вам ещё вчерашних раков сегодня за 3 рубля загнать?
У нас импортзамещение объявлено. Чуждый юмор с ГМО нам не нужен!
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39128546
AlexUser987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВAlexUser987Ребята, у вас плохо с английским юмором. Может, вам ещё вчерашних раков сегодня за 3 рубля загнать?
У нас импортзамещение объявлено. Чуждый юмор с ГМО нам не нужен!
Ты не в теме. Давай начнём с чего-нибудь простого... Ну вот, например - "дедушка храпит, а бабушка не слышит его". Почему?
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39128607
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA..., чтобы флудить о чем попало?ТСу все ответы даны. Почему бы и не "пофлудить"?
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39128661
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAAlexUser987пропущено...

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

Ну что за глупости :) Заного зарегистрировался на сайте, чтобы флудить о чем попало?и это при том, что эти async\await чистой воды синтаксический сахар :) без знания async\await скорость даже паспорт давать не будут и за человека считать, тоже !
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39128670
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХУ Это не тренд, а поиск выхода из тупика. Уперлись в максимум производительности однопоточного режима работы. Процы давно уже не ускоряются, скорость обмена с памятью тоже к пределу скоро подойдет. От доп.ядер в процах толку ноль т.к. алгоритмов нет хорошо параллелящихся, а их нет. Приложения все тяжелее и тяжелее, вот и ищут как бы попроще разработчиков научить параллелить хотя бы то немногое что параллелится.
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39128673
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C 2017-го года не будем брать на работу без знания аббревиатуры SIMD и опыта использования Vector.
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39128681
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TОт доп.ядер в процах толку ноль т.к. алгоритмов нет хорошо параллелящихся, а их нет.
обычный вебсервер конечно не рассматриваем
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39128694
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилDima TОт доп.ядер в процах толку ноль т.к. алгоритмов нет хорошо параллелящихся, а их нет.
обычный вебсервер конечно не рассматриваем
Форум про .Net, как много тут вэбсерверов написали?

Хорошо. Пусть будет не ноль, а 0,01%, туда и отнесем вебсервера и то немногое что параллелится.
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39128706
AlexUser987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman MejtesskyANAпропущено...

Да, да, да. Вот наберём в следующем году человек 30 без требования знания асинков и тасков, а дальше все, прикроем лавочку.

Ну что за глупости :) Заного зарегистрировался на сайте, чтобы флудить о чем попало?и это при том, что эти async\await чистой воды синтаксический сахар :) без знания async\await скорость даже паспорт давать не будут и за человека считать, тоже !
Ваш сишарп - вот синтаксический сахар.

skyANAC 2017-го года не будем брать на работу без знания аббревиатуры SIMD и опыта использования Vector.
"Выпьем за то, чтобы "забери меня отсюда!" мы не выкрикнули одновременно".
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39128718
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexUser987Ваш сишарп - вот синтаксический сахар.
ИМХУ если так рассуждать то сахар везде кроме асма, где-то больше, где-то меньше.
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39128722
blest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TAlexUser987Ваш сишарп - вот синтаксический сахар.
ИМХУ если так рассуждать то сахар везде кроме асма, где-то больше, где-то меньше.

Зачем его воспринимать всерьез?) Его слова и есть самый настоящий словесный пон.. сахар
...
Рейтинг: 0 / 0
Замена для backgroundWorker.
    #39128747
AlexUser987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blestDima Tпропущено...

ИМХУ если так рассуждать то сахар везде кроме асма, где-то больше, где-то меньше.

Зачем его воспринимать всерьез?) Его слова и есть самый настоящий словесный пон.. сахар
Не кипятись. Я не просто так сказал про тренд на асинки. Просто куда ни плюнь - в модные статьи на модном Хабрахабре, просто запустить дефолтный шаблон сервиса или сайта в Студии, где-то на SO - все и вся делают всё через асинки. Иногда создаётся ощущение, что они их просто так пихают - чтобы были.
...
Рейтинг: 0 / 0
42 сообщений из 42, показаны все 2 страниц
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Замена для backgroundWorker.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]