csharp 线程和异步任务片段

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp 线程和异步任务片段相关的知识,希望对你有一定的参考价值。

using System;
using System.Threading.Tasks;
using System.Threading;
using System.Collections.Generic;
using System.Diagnostics;

class MainClass {

  static int SleepTime = 1000;
  static int ForCount = 100;
  static List<Task> Tasks = new List<Task>();

  public static void Main (string[] args)
  {
    Stopwatch stopWatch = new Stopwatch();
    stopWatch.Start();
    
    Console.WriteLine("async Started");
    Task t = null;
    for (int i =0; i < ForCount; ++i)
    {
      t = StartAsyncTasks();
      Tasks.Add(t);
    }
    Task.WaitAll(Tasks.ToArray());
    Console.WriteLine("async Finished");
    Console.WriteLine("in " + stopWatch.Elapsed.Seconds);
    Tasks.Clear();

    stopWatch.Restart();
    StartThreads();
    Console.WriteLine("in " + stopWatch.Elapsed.Seconds);
  }

  public static async Task StartAsyncTasks()
  {
    await Task.Delay(SleepTime);
  }

  public static void StartThreads()
  {
    Console.WriteLine("thread Started");
    Task t = null;
    for (int i =0; i < ForCount; ++i)
    {
      t = Task.Run( () => Thread.Sleep(SleepTime));
      Tasks.Add(t);
    }
    Task.WaitAll(Tasks.ToArray());
    Console.WriteLine("thread Finished");
  }
}

以上是关于csharp 线程和异步任务片段的主要内容,如果未能解决你的问题,请参考以下文章

在 TabLayout 和 ViewPager2 中执行异步任务后更新具有相同布局的多个片段

屏幕方向期间片段内的异步任务

csharp 运行异步任务同步

从片段中调用分离的异步任务类

Android 我应该在异步任务中将片段作为弱引用传递吗?

当片段视图加载是异步任务的一部分时,如何在片段加载之前显示进度条?