Но у меня сразу возникает вопрос, почему мы не можем изначально присваивать абстракции какой-то конкретный класс, зачем это делать через какой-то отдельный класс-фабрику?

|
Brykez7 2022-06-26 15:36:26
Типо от основного потока
Keter_SCP 2022-06-26 15:36:26
Brykez7 2022-06-26 15:36:12
Но выполняется асинхронно

нет

Brykez7 2022-06-26 15:36:43
Тоесть по твоему вместе с основным? Это как?
Keter_SCP 2022-06-26 15:36:44
асинхронность != паралельность
dopusteam 2022-06-26 15:36:58
Brykez7 2022-06-26 15:36:12
Но выполняется асинхронно

Давайте код тогда что ли. А то обсуждаем абстрактного коня

Brykez7 2022-06-26 15:37:11
Не я задал вопрос
va_zolotov 2022-06-26 15:37:36
есть await foreach, но это другое
2022-06-26 15:37:39
va_zolotov 2022-06-26 15:35:56
от этого он асинхронным не становится

dotnetruchat-1298078.jpg
Почему сразу параллельно 2 кода выполняется. Foreach не блокируется в потоке, а сразу после него идет выполнения кода внизу. Промисы не помогают, к сожалению

Keter_SCP 2022-06-26 15:38:18
2022-06-26 15:37:39
Почему сразу параллельно 2 кода выполняется. Foreach не блокируется в потоке, а сразу после него идет выполнения кода внизу. Промисы не помогают, к сожалению

JS#?

2022-06-26 15:38:29
Keter_SCP 2022-06-26 15:38:18
JS#?

)

qFamouse 2022-06-26 15:39:13
dotnetruchat-1298081.jpg
Привет. Подскажите пожалуйста по фабричному методу. У меня проблемы с пониманием о необходимости отдельного класса создателя для какого-либо продукта. Почитав об этом паттерне везде твердится о расширяемости, мол можно легко вводить новые классы. Что конкретные создатели возвращают нам абстракцию с которой мы можем работать независимо от конкретного типа. Но у меня сразу возникает вопрос, почему мы не можем изначально присваивать абстракции какой-то конкретный класс, зачем это делать через какой-то отдельный класс-фабрику?
Еще я вычитал, что создатели не всегда должны отвечать исключительно за создание экзепляров, иногда там можно встретить обработку какой-то бизнес логики. может быть дело в этом?
zizjan 2022-06-26 15:39:55
Ralsei25 2022-06-26 15:27:37
А для остальных что?

фронтенд

Ralsei25 2022-06-26 15:42:28
2022-06-26 15:37:39
Почему сразу параллельно 2 кода выполняется. Foreach не блокируется в потоке, а сразу после него идет выполнения кода внизу. Промисы не помогают, к сожалению

Я не понял. Что должно блокироваться?

2022-06-26 15:43:34
Ralsei25 2022-06-26 15:42:28
Я не понял. Что должно блокироваться?

Сначала Foreach должен завершить свою работу, а потом внизу код должен выполняться. А получается так, что параллельно запускает foreach в фоне и код внизу.

2022-06-26 15:44:29
dotnetruchat-1298085.jpg
Вот. А так, они параллельно выполняются. В итоге просто прога идет в цикл.
Ralsei25 2022-06-26 15:45:27
2022-06-26 15:43:34
Сначала Foreach должен завершить свою работу, а потом внизу код должен выполняться. А получается так, что параллельно запускает foreach в фоне и код внизу.

Что ты подразумеваешь под «код внизу»?

2022-06-26 15:46:16
2022-06-26 15:44:29
Вот. А так, они параллельно выполняются. В итоге просто прога идет в цикл.

Код внизу — начинается с Process p = new Process();

Ralsei25 2022-06-26 15:47:48
2022-06-26 15:44:29
Вот. А так, они параллельно выполняются. В итоге просто прога идет в цикл.

Ну так здесь ты запускаешь в начале new Promise(async resolve =>
Но не ожидаешь его завершения (я же правильно понял, что это анало Task.Run ?)

va_zolotov 2022-06-26 15:48:04
2022-06-26 15:46:16
Код внизу — начинается с Process p = new Process();

переписывай в общем с жаваскрипта на сишарп

2022-06-26 15:49:06
Ralsei25 2022-06-26 15:47:48
Ну так здесь ты запускаешь в начале new Promise(async resolve =>
Но не ожидаешь его завершения (я же правильно понял, что это анало Task.Run ?)

Promise должен блокироваться в потоке и ждать ответа. Ответ дает функция resolve().

Ralsei25 2022-06-26 15:49:22
Что-то муторное
Ralsei25 2022-06-26 15:49:30
Реально перепиши на шарпы
2022-06-26 15:49:42
Вообщ, вот кратко «Promise (промис) — это объект, представляющий результат успешного или неудачного завершения асинхронной операции.»
Keter_SCP 2022-06-26 15:50:10
2022-06-26 15:49:42
Вообщ, вот кратко «Promise (промис) — это объект, представляющий результат успешного или неудачного завершения асинхронной операции.»

https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.task?view=net-6.0

2022-06-26 15:50:19
Ralsei25 2022-06-26 15:49:30
Реально перепиши на шарпы

Я до этого не писал промис, все равно параллельно работало. Поэтому в пришло голову сделать промисы

Ralsei25 2022-06-26 15:52:46
2022-06-26 15:50:19
Я до этого не писал промис, все равно параллельно работало. Поэтому в пришло голову сделать промисы

То есть всё работало хорошо и ты решил исправить фатальный недостаток?

2022-06-26 15:53:25
Ralsei25 2022-06-26 15:52:46
То есть всё работало хорошо и ты решил исправить фатальный недостаток?

Нет, это не хорошо работало. Должен быть форич выполнять, а потом уже запуск программы. А не параллельно их выполнять.

Keter_SCP 2022-06-26 15:53:40
2022-06-26 15:53:25
Нет, это не хорошо работало. Должен быть форич выполнять, а потом уже запуск программы. А не параллельно их выполнять.

если юзать Task то так и будет

Ralsei25 2022-06-26 15:54:03
Keter_SCP 2022-06-26 15:53:40
если юзать Task то так и будет

await Task

Keter_SCP 2022-06-26 15:54:15
Ralsei25 2022-06-26 15:54:03
await Task

ну да, и я про это

Keter_SCP 2022-06-26 15:54:49
2022-06-26 15:53:25
Нет, это не хорошо работало. Должен быть форич выполнять, а потом уже запуск программы. А не параллельно их выполнять.

вот попробуйте:
await Task.Run(() =>
{
foreach (int i in Enumerable.Range(0, 1000))
Console.WriteLine(i);
});
Console.WriteLine(«END!!!!!!!!!!!!!!!»);

dopusteam 2022-06-26 15:58:16
2022-06-26 15:49:06
Promise должен блокироваться в потоке и ждать ответа. Ответ дает функция resolve().

Нет, с чего вдруг?

2022-06-26 15:58:18
dotnetruchat-1298103.jpg
все равно параллельно
Keter_SCP 2022-06-26 15:58:42
2022-06-26 15:58:18
все равно параллельно

что паралельно?

2022-06-26 15:59:04
параллельно форич и запуск программы, так не должно
Keter_SCP 2022-06-26 15:59:18
не верю
Ralsei25 2022-06-26 15:59:39
2022-06-26 15:59:04
параллельно форич и запуск программы, так не должно

Как ты это определяешь?

Keter_SCP 2022-06-26 15:59:42
мб там Download это какой-то асинк который не эвэйтится?
dopusteam 2022-06-26 16:00:06
2022-06-26 15:59:04
параллельно форич и запуск программы, так не должно

Почему не должно? Создали промис и пошли дальше

2022-06-26 16:00:23
Ralsei25 2022-06-26 15:59:39
Как ты это определяешь?

ПО надписей) Надпись — скачивание, и сразу запуск идет)

Ralsei25 2022-06-26 16:00:41
Ну всё правильно
Keter_SCP 2022-06-26 16:00:42
2022-06-26 16:00:23
ПО надписей) Надпись — скачивание, и сразу запуск идет)

ну как я и говорил, можно увидеть сигнатуру Download?

2022-06-26 16:00:42
Keter_SCP 2022-06-26 15:59:42
мб там Download это какой-то асинк который не эвэйтится?

Да кстати, я тоже это хотел сказать, ее нужно чекнуть.

Ralsei25 2022-06-26 16:00:52
Сначала «Download», потом всё остальнгое
Ralsei25 2022-06-26 16:01:05
dopusteam 2022-06-26 16:00:06
Почему не должно? Создали промис и пошли дальше

Да кто этот ваш промис

dopusteam 2022-06-26 16:01:50
Ralsei25 2022-06-26 16:01:05
Да кто этот ваш промис

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

2022-06-26 16:03:38
Keter_SCP 2022-06-26 16:00:42
ну как я и говорил, можно увидеть сигнатуру Download?

dotnetruchat-1298117.jpg

Keter_SCP 2022-06-26 16:03:49
2022-06-26 16:03:38

ыыы

Ralsei25 2022-06-26 16:04:06
2022-06-26 16:03:38

Так он мгновенно выполняется

dopusteam 2022-06-26 16:04:30
Ralsei25 2022-06-26 16:04:06
Так он мгновенно выполняется

Async без ожидания же

|