Exemple #1
0
        public void TestLongRunningLoadDoesNotBlock()
        {
            List <TestLoadBlockingDrawableLongRunning> longRunning = new List <TestLoadBlockingDrawableLongRunning>();

            // add enough drawables to saturate the task scheduler
            AddRepeatStep("add long running", () =>
            {
                var d = new TestLoadBlockingDrawableLongRunning();
                longRunning.Add(d);
                LoadComponentAsync(d);
            }, 10);

            TestLoadBlockingDrawable normal = null;

            AddStep("add normal", () => { LoadComponentAsync(normal = new TestLoadBlockingDrawable(), Add); });
            AddStep("allow normal load", () => normal.AllowLoad.Set());
            AddUntilStep("did load", () => normal.IsLoaded);

            AddStep("allow long running load", () => longRunning.ForEach(d => d.AllowLoad.Set()));
        }
Exemple #2
0
        public void TestScheduleDuringAsyncLoad()
        {
            TestLoadBlockingDrawable composite = null;

            bool scheduleRun = false;

            AddStep("Async load drawable", () =>
            {
                LoadComponentAsync(composite = new TestLoadBlockingDrawable(), d => Child = d);
            });

            AddStep("Attempt to schedule on child 1", () =>
            {
                composite.Schedule(() => scheduleRun = true);
            });

            AddStep("Allow child 1 load", () => composite.AllowLoad.Set());

            AddUntilStep("Scheduled content run", () => scheduleRun);
        }