【问题标题】:C# Application waiting until Thread is complete? [duplicate]C# 应用程序等待线程完成? [复制]
【发布时间】:2014-12-05 15:31:25
【问题描述】:

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

这是我的代码:

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”。

有什么想法吗?谢谢!

【问题讨论】:

标签: c# multithreading


【解决方案1】:

要等到一个线程完成,你Join它:

t.Join();

【讨论】:

  • 我应该在 t.Start() 下面添加这个?
  • 如果此时要等待线程,那么可以。只是为了等待而启动一个线程并没有多大意义。
  • 嗯,那么在线程中处理输出并检索它的最佳方法是什么?
  • 你为什么想要一个线程?线程的全部意义在于你可以在它运行时做一些事情。
  • 让事情变得高效和快捷。我的线程处理在我的原始项目中进行大量繁重计算的方法。但是计算需要返回到主 UI,因此会出现这个问题。但是加入解决了它。有没有更好的办法?
猜你喜欢
  • 1970-01-01
  • 2022-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多