C#创建带参数的线程
2015-09-26 08:19
375 查看
1、无参数线程的创建
Thread thread = new Thread(new ThreadStart(ShowMessage));
thread.Start();
private void ShowMessage()
{
Console.WriteLine("hello world");
}
2、带一个参数的线程
使用ParameterizedThreadStart,调用 System.Threading.Thread.Start(System.Object) 重载方法时将包含数据的对象传递给线程。
注意传递的参数只能是object类型,不过可以进行强制类型转换。
Thread thread = new Thread(new ParameterizedThreadStart(ShowMessage));
string o = "hello";
thread.Start((object)o);
private static void ShowMessage(object message)
{
string temp = (string)message;
Console.WriteLine(message);
}
3、带两个及以上参数的线程
这时候可以将线程执行的方法和参数都封装到一个类里边,通过实例化该类,方法就可以调用属性来尽享传递参数。
例如如下程序,想传入两个string变量,然后打印输出。
public class ThreadTest
{
private string str1;
private string str2;
public ThreadTest(string a, string b)
{
str1 = a;
str2 = b;
}
public void ThreadProc()
{
Console.WriteLine(str1 + str2);
}
}
public class Example
{
public static void Main()
{
ThreadTest tt = new ThreadTest("hello ", "world");
Thread thread = new Thread(new ThreadStart(tt.ThreadProc));
thread.Start();
}
}
Thread thread = new Thread(new ThreadStart(ShowMessage));
thread.Start();
private void ShowMessage()
{
Console.WriteLine("hello world");
}
2、带一个参数的线程
使用ParameterizedThreadStart,调用 System.Threading.Thread.Start(System.Object) 重载方法时将包含数据的对象传递给线程。
注意传递的参数只能是object类型,不过可以进行强制类型转换。
Thread thread = new Thread(new ParameterizedThreadStart(ShowMessage));
string o = "hello";
thread.Start((object)o);
private static void ShowMessage(object message)
{
string temp = (string)message;
Console.WriteLine(message);
}
3、带两个及以上参数的线程
这时候可以将线程执行的方法和参数都封装到一个类里边,通过实例化该类,方法就可以调用属性来尽享传递参数。
例如如下程序,想传入两个string变量,然后打印输出。
public class ThreadTest
{
private string str1;
private string str2;
public ThreadTest(string a, string b)
{
str1 = a;
str2 = b;
}
public void ThreadProc()
{
Console.WriteLine(str1 + str2);
}
}
public class Example
{
public static void Main()
{
ThreadTest tt = new ThreadTest("hello ", "world");
Thread thread = new Thread(new ThreadStart(tt.ThreadProc));
thread.Start();
}
}
相关文章推荐
- C#高亮关键字
- C# 6.0 黑科技
- C# 生成系统唯一号
- 笔试最长子数组和最大子矩阵c#
- 【工具】C#代码混淆工具(Dotfuscator)
- C#中file类的应用
- C#操作word的一些函数
- C#WinFormListBox数据项的上下移动
- C#编写NotifyIcon 将窗口最小化到托盘
- C#将string转换为十六进制
- 【转载】C#验证控件的使用方法(RegularExpressionValidator)的使用
- C#中Winform程序调用WebService服务
- C#中Winform程序调用WebService服务
- C# 将短时间格式变长正常时间格式
- C# 如何调用可执行程序传参
- C# .net设置系统音量
- (转)C#.NET如何不序列化字段、属性
- c#中DllImport的用法
- Code First的migration应用
- C#实现多线程