Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#应用程序等待线程完成?_C#_Multithreading - Fatal编程技术网

C#应用程序等待线程完成?

C#应用程序等待线程完成?,c#,multithreading,C#,Multithreading,我有一个应用程序,其中一个线程用于计算一组数字,但问题是,应用程序在线程完成计算并返回计算出的数字之前完成。让应用程序等待计算完成的方法是什么 这是我的密码: namespace ThreadWaiting { class Program { public static int number=0; public static void Main(string[] args) { Thread t = new

我有一个应用程序,其中一个线程用于计算一组数字,但问题是,应用程序在线程完成计算并返回计算出的数字之前完成。让应用程序等待计算完成的方法是什么

这是我的密码:

namespace ThreadWaiting
{
    class Program
    {
        public static int number=0;

        public static void Main(string[] args)
        {
            Thread t = new Thread(Calculate);
            t.Start();

            //Wait here until processed?

            Console.WriteLine(number);
            Console.ReadKey();
        }

        private static void Calculate(object obj)
        {
            number = 2 + 2;
        }
    }
}
如果您运行它,您将看到它打印的是“0”,而不是“4”


有什么想法吗,伙计们?谢谢

要等待线程完成,您可以加入它:

t.Join();

线程同步FTW!我应该在t.Start()下面添加这个吗?如果您想在此时等待线程,那么是的。不过,启动线程只是等待它并没有多大意义。嗯,那么在线程中处理输出并检索它的最佳方式是什么?为什么需要线程?一个线程的全部意义在于你可以在它运行时做一些事情,使事情变得高效和快速。我的线程处理的方法在我的原始项目中进行了大量繁重的计算。但是计算结果需要返回到主用户界面,从而解决这个问题。但是联合解决了这个问题。先生,有更好的办法吗?