Exemplo n.º 1
0
        private async TT.Task UpdateLoop(IT.TaskScheduler scheduler)
        {
            _isAlive = true;
            while (_isAlive)
            {
                try
                {
                    scheduler.Update();

                    var delayMilliseconds = scheduler.IsActive ? 5 : 50;
                    await TT.Task.Delay(delayMilliseconds).ConfigureAwait(false);

                    // ↑Delay なし、専用スレッドで回りっぱなしとかがいいかもしれないし。
                }
                catch (Exception ex)
                {
                    HasError = true;
                    OnError(ex);
                }
            }
        }
Exemplo n.º 2
0
        private async TT.Task UpdateLoop(IT.TaskScheduler scheduler)
        {
            while (!_cts.IsCancellationRequested)
            {
                try
                {
                    var delayMilliseconds = scheduler.IsActive ? 5 : 50;
                    try
                    {
                        await TT.Task.Delay(delayMilliseconds, _cts.Token).ConfigureAwait(false);
                    }
                    catch (TT.TaskCanceledException) { }
                    // ↑Delay なし、専用スレッドで回りっぱなしとかがいいかもしれないし。

                    scheduler.Update();
                }
                catch (Exception ex)
                {
                    HasError = true;
                    OnError(ex);
                }
            }
        }