是否有可能在控制台c#应用程序中从不同线程调度一个操作到主线程?

本文关键字:一个 操作 线程 线程调度 控制台 有可能 应用程序 是否 | 更新日期: 2023-09-27 18:05:18

这更像是一种知识。我只是想知道这是否可能。如果能给这两种情况一个合理的解释,那将会很有帮助。

因为有人认为他们需要更多的解释和我的问题。这里是

基本上我想解决的情况是。我有一个控制台应用程序,它有一个API调用本地代码(有很多全局状态),只有一个线程可以调用本地代码在给定的时间。

我的控制台应用程序启动多个线程做大量的计算,而他们想要调用本地代码也在其中。

现在我有以下疑问,或者可能是我的理解不足(请原谅)

  1. 如果我对每个本机调用使用lock{},那么我只能阻止一个线程进入核心,这很好,但是想象一下,如果thread 1和thread 2等待锁,那么谁先获得锁?是先到先得还是不确定性?
  2. 如果它是不确定的,那么我想从不同的线程调度我所有的本机API调用被调度到主控制台应用程序运行线程。

是否有可能在控制台c#应用程序中从不同线程调度一个操作到主线程?

可能吗?当然……只要你定义了一个主线程…因为默认情况下没有消息循环,你必须编一些东西,或者得到一个引用winforms应用程序类或wpf调度程序,并启动其中一个…如果你启动它们,不管有没有winforms或WPF UI,它们都应该工作

如果你的应用程序中有代码需要在某个线程上完成某些操作…为什么不把事情分派到正确的线程呢?