【问题标题】:Static variable to thread C#静态变量到线程 C#
【发布时间】:2018-11-27 13:37:44
【问题描述】:

在类程序中,我声明了几个整数。在 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 种语言编写代码。 CountRange 而不是 telbrereik。这将使您的代码更加简洁明了。它还将帮助团队成员或 stackoverflow 上的人员阅读您的代码。
  • 感谢您的评论。我是为学校项目写的,但下次我发布一些东西时,我会翻译它。
  • 不要翻译。始终以 1 种语言编写代码。所有代码示例都是英文的,如果您从互联网上获取示例,您也不会将其转换为荷兰语。编程语言的关键字是英文,因此代码本身应该是英文。
  • 是的,你是对的。我会记住这一点。有时我会得到我学习的格式代码,我必须修改它们,它们可以是荷兰语。但是让它们成为英语并不需要很多时间。

标签: c# multithreading static declare


【解决方案1】:

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

【讨论】:

  • 是的,就是这样。谢谢!!
  • 很高兴为您提供帮助,欢迎来到 Stack Overflow。如果此答案或任何其他答案解决了您的问题,请将其标记为已接受。
猜你喜欢
  • 2011-07-17
  • 2013-03-29
  • 2011-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多