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

Всем привет. Я нашёл класс для очереди задач. Он хорошо

работает, но мне понадобилось добавить в задачу, которая добавляется в очередь, таймер завершения по cancelletiontoken. Из-за него semaphore.WaitAsync перестал ожидать завершения выполнения предыдущей задачи.Как это возможно исправить?

8 ответов

14 просмотров

Это как — перестал ожидать? Вроде всё ещё должен ждать.

dopler- Автор вопроса
Dr. Friedrich von Never
Это как — перестал ожидать? Вроде всё ещё должен ж...

До завершения первой задачи начинается вторая, с чем это связано пока не смог понять. Пытался передавать токен в WaitAsync и задавать таймер в самом добавлении в очередь, но тоже не помогло.

Но где тут вообще очередь? Задачи все так же в случайном порядке могут выполняться

dopler- Автор вопроса
Вазген Kurbesov
Но где тут вообще очередь? Задачи все так же в слу...

Асинхронное ожидание входа в семафор. Если кому-то не предоставлен доступ к Семафору, выполнение кода будет продолжено, иначе этот поток ждет здесь до тех пор, пока семафор не будет выпущен. При конструкторе максимальное число потоков равно одному, что каким-то образом можна конструировать как очередь. Я вообще искал класс для очереди задач и это единственный, который подходил под мои требования. Взял тут.

dopler
Асинхронное ожидание входа в семафор. Если кому-т...

Очередь должна реализовать принцип FIFO (первый поступил - первым обработан), а ту де просто общий семафор, а последовательное выполнение таск не гарантируется

dopler- Автор вопроса
Вазген Kurbesov
Очередь должна реализовать принцип FIFO (первый по...

Из-за этого и были проблемы, протестировал уже в разных случаях и работает по тому как вы сказали, хотя за наводку спасибо, обязательно гляну

dopler
Из-за этого и были проблемы, протестировал уже в р...

А вообще - если есть сильная необходимость - можно реализовать свой скедалер

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

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

function LoadMemoryFromInet2( f:TMemoryStream; const url:string; var e:string ):Boolean; var http:TIdHttp; LHandler: TIdSSLIOHandlerSocketOpenSSL;begin Result := fals...
Александр Смоляков
1
Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Я вот подумал. SSE выполняет операции максимум с 64-битной точностью. А FPU - всегда с 80-битной. Разве не должно быть FPU точнее тогда?
The Bird of Hermes
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
как быть с принтером? такой подход прокатит?
zamtmn
12
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
This is a big issue. Just by being a citizen of a country, you are denied to contribute to Open Source software: https://youtu.be/L5Ec5jrpLVk?si=1iIuHnMPbCB4anV-
Sharuzzaman Ahmat Raslan
72
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
Карта сайта