C#中的多線程多參數傳遞詳解。本站提示廣大學習愛好者:(C#中的多線程多參數傳遞詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是C#中的多線程多參數傳遞詳解正文
之前做了一個小的運用法式,用的是c#說話,觸及到了多線程的多參數傳遞,經由查找材料總結了一下處理計劃!
第一種處理計劃的道理是:將線程履行的辦法和參數都封裝到一個類外面。經由過程實例化該類,辦法便可以挪用屬性來完成直接的類型平安地傳遞多個參數。看以下代碼:
using System;
using System.Threading;
//ThreadWithState 類裡包括了將要履行的義務和履行義務的辦法
public class ThreadWithState {
//要用到的屬性,也就是我們要傳遞的參數
private string boilerplate;
private int value;
//包括參數的結構函數
public ThreadWithState(string text, int number)
{
boilerplate = text;
value = number;
}
//要丟給線程履行的辦法,本處無前往類型就是為了能讓ThreadStart來挪用
public void ThreadProc()
{
//這裡就是要履行的義務,本處只顯示一下傳入的參數
Console.WriteLine(boilerplate, value);
}
}
----------分隔線-----------
//用來挪用下面辦法的類,是本例履行的進口
public class Example {
public static void Main()
{
//實例化ThreadWithState類,為線程供給參數
ThreadWithState tws = new ThreadWithState(
“This report displays the number {0}.”, 42);
// 創立履行義務的線程,並履行
Thread t = new Thread(new ThreadStart(tws.ThreadProc));
t.Start();
Console.WriteLine(“Main thread does some work, then waits.”);
t.Join();
Console.WriteLine(
“Independent task has completed; main thread ends.”);
}
}
從下面的例子就可以很清晰的獲得我們想要的成果,留意這句代碼的用法:
Thread t = new Thread(new ThreadStart(tws.ThreadProc));
第二種處理計劃的道理是把多個參數封裝成object來傳遞,然後在線程裡應用時拆箱便可,看以下代碼:
ParameterizedThreadStart ParStart = new ParameterizedThreadStart(ThreadMethod);
Thread myThread = new Thread(ParStart);
object o = “hello”;
myThread.Start(o);
ThreadMethod以下:
public void ThreadMethod(object ParObject)
{
//法式代碼
}