C# TaskScheduler Form.Timer

Илья Хороший

Добрый день.
Решал одну задачу и наткнулся на еще одну.
Расскажу подробнее.

Надо сделать так, чтобы во время длительного выполнения действий, таймер останавливался, и запускался после этого.

Есть 1 Form.Timer
Есть 2
TaskScheduler syncContextScheduler;
if (SynchronizationContext.Current != null)
{
syncContextScheduler = TaskScheduler.FromCurrentSynchronizationContext();
}
else
{
// If there is no SyncContext for this thread (e.g. we are in a unit test
// or console scenario instead of running in an app), then just use the
// default scheduler because there is no UI thread to sync with.
syncContextScheduler = TaskScheduler.Current;
}

Есть 3

var task = chromeBrowser.EvaluateScriptAsync(sb.ToString());

Есть 4

task.ContinueWith(t =>{...}}, syncContextScheduler);

Когда запускаю таймер выполняется функция в которой "Есть 4". Внутри этой "Есть 4" Таймер останавливается, выполняются действия, после Таймер запускается. timer1.enable = false timer1.enable = true.

Теперь к вопросу.
Когда тамер запускается вручную (нажимаю на кнопку, которая вызывается функцию в которой timer1.enable = true), то всё работает как надо. Таймер тормозит, выполняются действия, таймер запускается. В этом случае "Есть 2" равен следующему значению System.Threading.Task.SynchronizationContextTaskSheduler.
А когда тамер запускается при помощи некоторого события (окончания загрузки страницы), то "Есть 2" равен System.Threading.Task.ThreadPoolTaskSheduler. И вот что происходит, Функция начинает выполняться, заходит в "Есть 4" , Таймер останавливается, выполняются действия, а когда очередь доходит до строчки timer1.enable = true, то он не запускается. Хотя значение Enable меняется на true.

Вопросы:
Что просходит?
Куда копать чтобы узначть что проиходит?
Как это исправить?
Нужно ли делать один поток и как это сделтаь?
Как еще можно затормозить процесс кроме Timer ( расскажите или ссылку с моим случаем)?

и т.д.
Хочется уже решить эту задачу.
Если кто-то что-то знает дайте знать.
Если непонятно объяснил, скажите.

1 чел.