程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#線程系列講座(2):Thread類的應用(2)

C#線程系列講座(2):Thread類的應用(2)

編輯:關於C語言

如果讀者 的方法很簡單,或出去某種目的,也可以通過匿名委托或Lambda表達式來為 Thread的構造方法賦值,代碼如下:

Thread thread3 = new Thread(delegate() { Console.WriteLine("匿名委托"); });
thread3.Start();
Thread thread4 = new Thread(( ) => { Console.WriteLine("Lambda表達式"); });
thread4.Start();

其中Lambda表達式前面的( )表示沒有參數。

為了區分 不同的線程,還可以為Thread類的Name屬性賦值,代碼如下:

Thread thread5 = new Thread(() => { Console.WriteLine(Thread.CurrentThread.Name); });
thread5.Name = "我的Lamdba";
thread5.Start();

如果將上面thread1至 thread5放到一起執行,由於系統對線程的調度不同,輸出的結果是不定的,如圖 1是一種可能的輸出結果。

圖1

二、定義一個線程類

我們可以將Thread類封裝在一 個MyThread類中,以使任何從MyThread繼承的類都具有多線程能力。MyThread類 的代碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace MyThread
{
abstract class MyThread
{
Thread thread = null;
abstract public void run();
public void start()
{
if (thread == null)
thread = new Thread(run);
thread.Start();
}
}
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved