Thread.Start方法负责计划要执行的线程。可以通过向其传递不同的参数来重载该方法。
- Start()
- Start(对象)
语法如下:
public void Start ();
例外情况:
- ThreadStateException:如果线程已经启动。
- OutOfMemoryException:如果没有足够的内存来启动线程。
//C# program to illustrate the
//use of Start() method
using System;
using System.Threading;
class GThread {//Non-static method
public void Job()
{
for ( int X = 0;
X <
4;
X++) {
Console.WriteLine(X);
}
}
}//Driver Class
public class GFG {//Main Method
public static void Main()
{
//Creating object of GThread class
GThread obj = new GThread();
//Creating and initializing a thread
Thread thr = new Thread( new ThreadStart(obj.Job));
//Start the execution of Thread
//Using Start() method
thr.Start();
}
}
输出如下:
0
1
2
3
Start(对象) 此方法告诉操作系统将当前实例的状态更改为” 正在运行” 。它传递一个对象, 该对象包含线程执行的方法要使用的数据。此参数是可选的。
语法如下:
public void Start (object parameter);
这里, 参数是一个对象, 其中包含线程执行的方法要使用的数据。
【C#中如何安排线程执行(执行多线程?)】例外情况:
- ThreadStateException:如果线程已经启动。
- OutOfMemoryException:如果没有足够的内存来启动线程。
- InvalidOperationException:如果线程是使用ThreadStart委托而不是ParameterizedThreadStart委托创建的。
//C# program to illustrate the
//use of Start(Object) method
using System;
using System.Threading;
//Driver Class
class GFG {//Main Method
public static void Main()
{
//Creating object of GFG class
GFG obj = new GFG();
//Creating and initializing threads
Thread thr1 = new Thread(obj.Job1);
Thread thr2 = new Thread(Job2);
//Start the execution of Thread
//Using Start(Object) method
thr1.Start(01);
thr2.Start( "Hello" )
}//Non-static method
public void Job1( object value)
{
Console.WriteLine( "Data of Thread 1 is: {0}" , value);
}//Static method
public static void Job2( object value)
{
Console.WriteLine( "Data of Thread 2 is: {0}" , value);
}
}
输出如下:
Data of Thread 1 is: 1
Data of Thread 2 is: Hello
参考:
- https://docs.microsoft.com/en-us/dotnet/api/system.threading.thread.start?view=netframework-4.7.2
推荐阅读
- 如何仅使用CSS在HTML列表中设置项目符号颜色()
- 如何从PHP运行JavaScript()
- 如何从C中的函数返回指针()
- 如何限制C++中对象的动态分配()
- 如何删除内联块元素之间的空间()
- 如何在PHP中删除非字母数字字符()
- mac上kubeadmin安装k8s(完整)
- redis 哨兵模式 sentinel
- powershell 向内部证书颁发机构申请证书