0

如果我打电话Directory.GetFiles()大约需要 10 秒才能完成,我如何(同时)显示动画加载文本?我有一个班级来处理动画,但我不确定这是否可以通过单个函数调用(而不是循环)来实现。

4

1 回答 1

1

您可以使用任务

class Program
    {
        static void Main()
        {

            var tokenSource2 = new CancellationTokenSource();
            var ct = tokenSource2.Token;

            var task = Task.Factory.StartNew(() =>
            {
                //Replase  with yor animation code

                int i = 0;
                while (true)
                {

                    Console.WriteLine(i++/10.0);
                    Task.Delay(100).Wait();

                    if (ct.IsCancellationRequested)
                    {
                        return;
                    }

                }
                // end of replace
            }, tokenSource2.Token);

            Task.Delay(10000).Wait(); //replace with Directory.GetFiles() 

            tokenSource2.Cancel(); // replace with animation stop code

        }
    }
于 2013-07-09T14:49:32.837 回答