170 похожих чатов

Народ, есть тупой вопрос. У меня, допустим, есть WeakReference на

ValueType. Вопрос: isAlive даёт же мне гарантию, что если isAlive == true, то гарантированно метод, в котором эта переменная объявлена, ещё не завершился?
Далее второй вопрос тупее первого: есть ли какие более "гарантированные" методы определения, что какой-то конкретный метод уже отработал, кроме как создание WeakReference на локальную переменную в методе с дальнейшей проверкой isAlive?

20 ответов

24 просмотра

Коллбэкы, bool флаг

Dmitriy-Bobrovskiy Автор вопроса
Phantom
Коллбэкы, bool флаг

Ну, коллбэк как я зарегаю на завершение метода?

а в WR положить переменную зато есть возможность?

Dmitriy-Bobrovskiy Автор вопроса
Критерий Вычисλимости
а в WR положить переменную зато есть возможность?

Да, т.к. регать повезде коллбэки не всегда удобно. А сделать out int myVar куда проще.

Как ты взял викреф на value type?

По второму вопросу: имхо, ты делаешь какую-то муть. Опиши изначальную проблему.

Dmitriy-Bobrovskiy Автор вопроса
Dr. Friedrich von Never
По второму вопросу: имхо, ты делаешь какую-то муть...

Дядь, смотри. Я хотел сделать генерацию DbContext в своём скоупе без использования using с new или IServiceScopeFactory для резолва скоупа, а в нём - контекста. Точнее, так: я хочу иметь возможность запускать параллельно несколько запросов к одному контексту (например, UserDbContext). Для этого придётся каждый из них создавать в своём scope. Вот мы и подошли к тому, что мне нужно иметь возможность сделать как-то типа такого await userDbContextProxy.Resolve(out token).Users.Where(...)...

Dmitriy Bobrovskiy
Дядь, смотри. Я хотел сделать генерацию DbContext ...

а не проще скоупы создавать? Звучит как неподдерживаемая дичь

Dmitriy-Bobrovskiy Автор вопроса
βλαδιμιρ
а не проще скоупы создавать? Звучит как неподдержи...

Я и хочу это делать, но хитрее. Собственно, я де-факто это и хотел делать.

Dmitriy Bobrovskiy
Дядь, смотри. Я хотел сделать генерацию DbContext ...

Звучит как какая-то слабо нужная хрень и попытка сэкономить на спичках, которая потом выльется в бОльшие затраты человековремени чем сэкономит сейчас. Но можете сделать сервис, который будет смотреть в AsyncLocal на предмет наличия контекста. Если есть - отдаёт созданный/зарезолвенный. Если нет - создаёт/резолвит, сохраняет в AsyncLocal и отдаёт. Я понятия, правда, не имею как именно вы будете их создавать и диспоузить потом (диспоуз вместе с сервисом, может быть?)

Dmitriy-Bobrovskiy Автор вопроса
SomebodyOdd
Звучит как какая-то слабо нужная хрень и попытка с...

Я хотел создать условную проксю, которая резолвит контекст каждый раз.

Dmitriy Bobrovskiy
Дядь, смотри. Я хотел сделать генерацию DbContext ...

Я думаю, что примерно понял, что ты хочешь, но деталей всё ещё не понял. Мб покажешь какой-то кусочек кода?

Dmitriy-Bobrovskiy Автор вопроса
Dr. Friedrich von Never
А если его просто добавить как Transient?

Ну, дядь, вроде MS не рекомендует менять service lifetime для DbContext со scoped.))) Кусочек кода через шарплаб попробую накидать, скинуть. Правда, чур за такой код потом ссанными тряпками из чата не гнать за профнепригодность.😂 А с интрузивным списком не совсем понимаю, как его свойства можно юзать?🧐

Dmitriy Bobrovskiy
Ну, дядь, вроде MS не рекомендует менять service l...

Дак ну ты уже пошёл поперёк этих рекомендаций, когда захотел, чтоб у него был другой лайфтайм 🤷‍♂️

Dmitriy Bobrovskiy
Ну, дядь, вроде MS не рекомендует менять service l...

Я все ещё не понял в чем проблема создавать скоп

Dmitriy-Bobrovskiy Автор вопроса
Dr. Friedrich von Never
Дак ну ты уже пошёл поперёк этих рекомендаций, ког...

Так я не хочу лайфтайм менять, я хочу иметь возможность создать любое количество контекстов без тупого var newScope = serviceScopeFactory.CreateScope(); var newContext = newScope.ServiceProvider.GetRequiredService<MyDbContext>();

Dmitriy Bobrovskiy
Так я не хочу лайфтайм менять, я хочу иметь возмож...

«создать любое количество контекстов» — это и есть «поменять лайфтайм» :)

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Ребят в СИ можно реализовать ООП?
Николай
33
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Карта сайта