我有一个定期多线程处理参数/值
public void testThread (int fib)
{
int a = 1;
int fib2 = fib + a;
Console.WriteLine(" Thread : "+fib);
}
如何将结果值传递回MainThread或另一个Thread?
答案 0 :(得分:0)
您通常通过将数据写入某个共享数据结构(如一个线程正在写入的队列而另一个线程正在读取的队列)来在线程之间传递数据。
然而,还有其他明确的方法。例如,如果您尝试将数据从后台线程获取到UI线程,那么您可以使用该数据调用UI API,那么有一些技术可以在其他线程上下文中执行代码位。
例如,如果您知道与UI线程关联的TaskScheduler,则可以使用System.Threading.Tasks中的Task类在UI线程上启动任务。当您的代码在UI线程上执行时,您可以从TaskScheduler.FromCurrentSynchronizationContext()获取它,并将其保存在静态变量中以便以后使用。