Информация об изменениях

Сообщение Re: Многопоточный код от 11.02.2016 18:19

Изменено 11.02.2016 18:21 Albeoris

Здравствуйте, _ichensky, Вы писали:

_>Идеально подошлобы что-то вроде Task.Factory.StarNew, но чтобы таска сразу получила найвысший приоритет перед остальными тасками и если понадобиться — были приостановлены все другие таски, но по-умолчанию Task.Factory может положить таску в пул и ожидать завершения некоторых других.


Нельзя -> нет исходников? Тогда воткнуть в него через IL в рантайме любой WaitHandle (lock, wait, pulse или более высокоуровневые, типа Auto/ManualResetEvent)
Re: Многопоточный код
Здравствуйте, _ichensky, Вы писали:

_>Идеально подошлобы что-то вроде Task.Factory.StarNew, но чтобы таска сразу получила найвысший приоритет перед остальными тасками и если понадобиться — были приостановлены все другие таски, но по-умолчанию Task.Factory может положить таску в пул и ожидать завершения некоторых других.


Нельзя -> нет исходников? Тогда воткнуть в него через IL в рантайме любой WaitHandle (lock, wait, pulse или более высокоуровневые, типа Auto/ManualResetEvent)

Любой поток может быть засуспенден системой. А в случае .NET, ещё и GC. Поэтому как бы ты не выставлял тайминги, найдётся ситуация, в которой они дадут сбой. И тут не важно, началось их выполнение одновременно или нет.