使用线程发送数据

本文关键字:数据 线程 | 更新日期: 2023-09-27 18:25:05

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

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

在BattleArena级上,我有

public static void ArenaGame(int test)
    {
        while (true)
        {
            Console.WriteLine(test);
            Thread.Sleep(400);
        }
    }

但这不是一个有效的方式。。。

使用线程发送数据

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

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

不要使用参数化线程,因为有了lambdas,它们已经过时了。

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

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

 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);
    }
}

您应该使用参数化线程启动