使用线程发送数据

时间:2013-07-25 15:06:13

标签: c# multithreading

我需要知道如何通过我的线程发送数据,我有这个代码。

            new Thread(BattleArena.ArenaGame(12)).Start();

在BattleArena课上我有

public static void ArenaGame(int test)
    {
        while (true)
        {

            Console.WriteLine(test);

            Thread.Sleep(400);
        }
    }

但这不是一种有效的方法......

3 个答案:

答案 0 :(得分:3)

您需要使用参数化线程。像

 ThreadStart start = () => {     BattleArena.ArenaGame(12);  };

 Thread t = new Thread(start);
 t.Start();

或者

 Thread newThread = new Thread(BattleArena.ArenaGame);
 newThread.Start(12);

然后将此方法更改为它只将对象作为参数,因为ThreadStart不是通用委托

public static void ArenaGame(object value)
{
    int test = (int)value;
    while (true)
    {

        Console.WriteLine(test);

        Thread.Sleep(400);
    }
}

答案 1 :(得分:3)

现在您正在“发送”方法调用的结果。 (甚至不可编译)。您想发送/执行一个函数:

new Thread(() => BattleArena.ArenaGame(12)).Start();

不要使用参数化线程,由于lambdas,它们已经过时了。

澄清:线程不是发送数据的方式。这是一种执行功能的方法。该函数必须包含数据。

答案 2 :(得分:1)

你应该使用参数化的ThreadStart

相关问题