在线程C#之间传递参数

时间:2017-08-03 17:19:40

标签: c# multithreading

我有一个定期多线程处理参数/值

  public void testThread (int fib)
  {
    int a = 1;
    int fib2 = fib + a;
    Console.WriteLine(" Thread : "+fib);
  }

如何将结果值传递回MainThread或另一个Thread?

1 个答案:

答案 0 :(得分:0)

您通常通过将数据写入某个共享数据结构(如一个线程正在写入的队列而另一个线程正在读取的队列)来在线程之间传递数据。

然而,还有其他明确的方法。例如,如果您尝试将数据从后台线程获取到UI线程,那么您可以使用该数据调用UI API,那么有一些技术可以在其他线程上下文中执行代码位。

例如,如果您知道与UI线程关联的TaskScheduler,则可以使用System.Threading.Tasks中的Task类在UI线程上启动任务。当您的代码在UI线程上执行时,您可以从TaskScheduler.FromCurrentSynchronizationContext()获取它,并将其保存在静态变量中以便以后使用。