c#多线程有几种实现

 我来答
仙戈雅3n
2017-12-21 · TA获得超过5790个赞
知道大有可为答主
回答量:2398
采纳率:75%
帮助的人:904万
展开全部

多线程使用的主要的几种形式:

1)使用Thread类创建一个新线程

static void Main(string[] args){
     Thread thread = new Thread(delegate(){
          for (int i = 0; i <= 10; i++){
               Console.WriteLine(Thread.CurrentThread.Name + ":" + i);
               Thread.Sleep(100);
          }
      });
      thread.Name = "t1 thread";
      thread.Start();

      Console.WriteLine("TO DO SOMETHING...");
      Console.ReadKey(true);
}

2)使用async与await关键字配合使用

static void Main(string[] args){
      Console.WriteLine("Main method start...");
      Foo();
      Console.WriteLine("TO DO SOMETHING...");
      Console.WriteLine("Main method end...");
      Console.ReadKey(true);
}

async static void Foo(){
      Console.WriteLine("Foo method start.");
      await Task.Delay(2000);
      Console.WriteLine("Foo method end.");
}

3)使用委托内置的实例方法BeginInvoke实现异步编程

static void Main(string[] args){
       Func<int, int, int> sum = (x, y) =>{
            Thread.Sleep(2000);
            return x + y;
       };

       sum.BeginInvoke(10, 5,(IAsyncResult asyncResult)=> {
             Console.WriteLine("callback method.");
       }, null);

       Console.WriteLine("TO DO SOMETHING...");

       Console.ReadKey(true);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式