我需要知道如何通过我的线程发送数据,我有这个代码。
new Thread(BattleArena.ArenaGame(12)).Start();
在BattleArena课上我有
public static void ArenaGame(int test)
{
while (true)
{
Console.WriteLine(test);
Thread.Sleep(400);
}
}
但这不是一种有效的方法......
答案 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