源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C#中的多线程多参数传递详解

  • 时间:2020-12-26 06:07 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C#中的多线程多参数传递详解
之前做了一个小的应用程序,用的是c#语言,涉及到了多线程的多参数传递,经过查找资料总结了一下解决方案! [b]第一种解决方案的原理是:[/b]将线程执行的方法和参数都封装到一个类里面。通过实例化该类,方法就可以调用属性来实现间接的类型安全地传递多个参数。看如下代码:
[u]复制代码[/u] 代码如下:
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); } }
----------分隔线-----------
[u]复制代码[/u] 代码如下:
//用来调用上面方法的类,是本例执行的入口 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)); [b]第二种解决方案的原理是[/b]把多个参数封装成object来传递,然后在线程里使用时拆箱即可,看如下代码:
[u]复制代码[/u] 代码如下:
ParameterizedThreadStart ParStart = new ParameterizedThreadStart(ThreadMethod); Thread myThread = new Thread(ParStart); object o = “hello”; myThread.Start(o);
ThreadMethod如下: public void ThreadMethod(object ParObject) { //程序代码 }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部