C#线程调用方法时,怎么传参数过去

如题所述

写一个类,把参数封装一下即可。见以下代码

using System;
using System.Threading;

public class MyThreadClass
{
    private int x;
    public MyThreadClass (int x)
    {
        this.x = x;
    }

    public void MyThread()
    {
        Console.WriteLine("Parameter = {0}", x);
    }
}

class Program
{
    static void Main(string[] args)
    {
        MyThreadClass mtc = new MyThreadClass(100);
        Thread t = new Thread(mtc.MyThread);
        t.IsBackground = true;
        t.Start();

        Console.ReadKey();
    }
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-04-03
第1个参数ThreadStart也可以是ParameterizedThreadStart,之后在用thread.start(object
para),注意参数类型是object的,因此你可以自己写1个类,用来存你要用的参数。

在C#中使用线程,线程的方法函数中需要带一个数组的参数传递进去
nn.start(数组);public void doit(object sender){ float[] _mydata = sender as float[];\/\/do something } 另外建议:把新建线程设为后台线程,即添加: nn.IsBackground = true;这一句话,这样当你应用程序退出之后,该线程也会立即销毁,如果为false,则就算主线程退出了,你新建的线程还会继...

C#如何给在运行中的线程传值
1、i 声明为成员变量而不是局部变量 2、testclass种提供一个成员函数来改变i的值 3、t声明为Form1的成员变量而不是局部变量 4、调用t上的步骤2中所说的成员函数来达到目的 如果为了防止正好++i的时候那个方法被调用,可以弄个锁防止多个线程同时操作i ...

c#Threading.Timer()如何传递变量?
Object state这个就是参数啊,给timer构造函数的时候,其中有个参数是state,就是你传进去的参数。public Timer(TimerCallback callback,Object state,int dueTime,int period )上面这个。你的TimerMethod函数解析时把state强转为int类型就行了。

C# 不同窗体 不同线程间传递数据
具体的做法:在B里声明一个事件(委托),暴露出去给A,A可以用自己的一个方法去进去监听,监听这个动作需要你实例化B的时候来完成。而B需要决定什么时候来触发这个事件。从你的问题来看,应该是在接受到数据的时候去触发这个事件。具体的Code:namespace Test{ public delegate void SendMessageEventHandle...

c# 的两个线程之间怎样进行 数据传递?
new System.Threading.ParameterizedThreadStart(Test));object test="asdfasdf";TestThread.Start(test);} private void Test(object test){ string k = test.ToString();} 参数只能是object 类型。具体也可以是一个类传递进去,但是把这个类转换为object然后传进去,然后里面再把OJBECT转换成类!

在C#窗体里创建了一个线程,线程里我定义了一个string变量,如何把该变量...
你可以在窗体内写一个方法,用来设置这个TextBox的值,然后在创建线程的时候,将这个方法传递给线程,这样在线程中就可以直接调用了 另外这个方法最好用Invoke()方法去实现

请问C#中使用线程池,这样的使用方式(下图)正确吗?后台有三个方法需要...
\/\/ 将一个线程放进线程池,该线程的 Start() 方法将调用 WaitCallback 代理对象代表的函数 public static bool QueueUserWorkItem(WaitCallback);\/\/ 重载的方法如下,参数 object 将传递给 WaitCallback 所代表的方法 public static bool QueueUserWorkItem(WaitCallback, object);注意:ThreadPool 类是一...

c#多线程中控件的Invoke()中参数为什么不能直接传一个方法也不能传一...
你都已经用匿名委托用 => 了,这不是 Lambda 是啥!Invoke() 方法参数是一个委托类型,要是不用匿名委托的话,你得定义一个 delegate 类型对象传进去。

C#中的多线程问题,为什么带参数的方法不行,不带参数的可以?
threadstart的参数是一个函数指针,这个指针是要传递个thread的一个内部函数执行的(那个函数才是真正意义的线程),你自己的函数只是传递给人家,人家调用进去,该函数指针的类型就是没有参数,没有返回值的,你的线程函数必须类型相同,指针类型不同肯定不行的。。。

C#怎么调用方法
1、C#同步方法就是传统方法调用,最简单的是不带参数的,void无返回值的方法。声明例子如下。调用只需要方法名()即可。2、带有参数的方法调用也同样简单,参数写在方法名后边的圆括号中,如图。调用的时候,只需要在元括号内依次填写对应参数。注意:C#有多种关键字修饰和限定参数,比如in,out,ref等。...

相似回答