← пред | след →
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
от этого он асинхронным не становится

Почему сразу параллельно 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

Привет. Подскажите пожалуйста по фабричному методу. У меня проблемы с пониманием о необходимости отдельного класса создателя для какого-либо продукта. Почитав об этом паттерне везде твердится о расширяемости, мол можно легко вводить новые классы. Что конкретные создатели возвращают нам абстракцию с которой мы можем работать независимо от конкретного типа.
Но у меня сразу возникает вопрос, почему мы не можем изначально присваивать абстракции какой-то конкретный класс, зачем это делать через какой-то отдельный класс-фабрику?
Еще я вычитал, что создатели не всегда должны отвечать исключительно за создание экзепляров, иногда там можно встретить обработку какой-то бизнес логики.
может быть дело в этом?
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

Вот. А так, они параллельно выполняются. В итоге просто прога идет в цикл.
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

все равно параллельно
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?

Keter_SCP 2022-06-26 16:03:49
Ralsei25 2022-06-26 16:04:06
Так он мгновенно выполняется
dopusteam 2022-06-26 16:04:30
Ralsei25 2022-06-26 16:04:06
Так он мгновенно выполняется
Async без ожидания же
← пред | след →