线程C#的静态变量

时间:2018-11-27 13:37:44

标签: c# multithreading static declare

在类程序中,我声明了几个整数。在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;


        }
    }
}

1 个答案:

答案 0 :(得分:3)

您是否未在Main方法中重新定义变量? 而不是int p =? ,只是p =?。应该工作