线程C#的静态变量
Static variable to thread C#
在 class 程序中,我声明了几个整数。在 Mains 方法中,它们获得一个值。这些值在 telbereik 方法中使用,但是当线程启动时这些值重置为 0。我希望它们具有用户在 Main 方法中给出的值。
namespace ConsoleApp10
{
class Program
{
static int e, p,b,m,teller;
//static long e;
static void Main(string[] args)
{
string input = Console.ReadLine();
string[] inputs = input.Split(' ');
teller = 0;
int p = Convert.ToInt32(inputs[4]);
int e = Convert.ToInt32(inputs[2]);
int b = Convert.ToInt32(inputs[1]);
int m = Convert.ToInt32(inputs[3]);
Thread[] ts = new Thread[p];
for (int t = 0; t < p; t++)
{
ts[t] = new Thread(telbereik);
}
for(int t=0;t<p;t++)
{
ts[t].Start(t);
}
/*for (int t = 0; t < p; t++)
{
ts[t].Join();
}*/
}
public static void telbereik(object mt)
{
int threadnum=Convert.ToInt32(mt);
int nepeind = e - b;
int rest = nepeind % p;
int eind = (nepeind / p) * p;
}
}
}
你不是在Main方法中重新定义变量吗?
而不是 int p = ? , 只是 p = ?。应该工作
在 class 程序中,我声明了几个整数。在 Mains 方法中,它们获得一个值。这些值在 telbereik 方法中使用,但是当线程启动时这些值重置为 0。我希望它们具有用户在 Main 方法中给出的值。
namespace ConsoleApp10
{
class Program
{
static int e, p,b,m,teller;
//static long e;
static void Main(string[] args)
{
string input = Console.ReadLine();
string[] inputs = input.Split(' ');
teller = 0;
int p = Convert.ToInt32(inputs[4]);
int e = Convert.ToInt32(inputs[2]);
int b = Convert.ToInt32(inputs[1]);
int m = Convert.ToInt32(inputs[3]);
Thread[] ts = new Thread[p];
for (int t = 0; t < p; t++)
{
ts[t] = new Thread(telbereik);
}
for(int t=0;t<p;t++)
{
ts[t].Start(t);
}
/*for (int t = 0; t < p; t++)
{
ts[t].Join();
}*/
}
public static void telbereik(object mt)
{
int threadnum=Convert.ToInt32(mt);
int nepeind = e - b;
int rest = nepeind % p;
int eind = (nepeind / p) * p;
}
}
}
你不是在Main方法中重新定义变量吗? 而不是 int p = ? , 只是 p = ?。应该工作