使用线程发送数据
本文关键字:数据 线程 | 更新日期: 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);
}
}
您应该使用参数化线程启动