程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#中的多線程多參數傳遞詳解

C#中的多線程多參數傳遞詳解

編輯:C#入門知識

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)
{
//法式代碼
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved