问题描述
如果我有以下程序
public class MainClass {
public static void Main () {
Console.WriteLine($"Main [{Thread.CurrentThread.ManagedThreadId}]");
Parallel.Invoke(
() => Foo(),() => Bar()
);
Console.WriteLine("Done");
}
static void Foo() {
Console.WriteLine($"Foo[{Thread.CurrentThread.ManagedThreadId}]");
}
static void Bar() {
Console.WriteLine($"Bar[{Thread.CurrentThread.ManagedThreadId}]");
}
}
然后在.net core 3.1下它将产生类似的输出
Main [1]
Foo[1]
Bar[4]
Done
我现在的问题是保证Parallel.Invoke()
将使用它的调用线程来完成它给出的部分或全部工作吗?就像在每个平台或框架上一样,还是在某些UI框架(如WPF或WinForms)上表现有所不同。
我的问题还不是是否会阻塞调用线程,而是调用线程是否会做一些工作。
Main [1]
Foo[2]
Bar[3]
Done
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)