C# 在WPF/C中按需挂起/重新启动线程#
在WPF应用程序中,我有一个线程池(每个线程都是对返回base64映像的REST Web服务的调用),我想更精确地“控制”它 这些线程是异步的,我希望能够挂起/恢复它们中的每一个C# 在WPF/C中按需挂起/重新启动线程#,c#,wpf,multithreading,restart,suspend,C#,Wpf,Multithreading,Restart,Suspend,在WPF应用程序中,我有一个线程池(每个线程都是对返回base64映像的REST Web服务的调用),我想更精确地“控制”它 这些线程是异步的,我希望能够挂起/恢复它们中的每一个 我想使用CancellationToken之类的东西不是一个选项,因为每个线程都只是在做一个调用并等待答案 我刚刚在类中看到Thread=>Suspend&Restart已经过时/不推荐了 如果有人有什么建议 提前感谢。因此,由于线程的性质,您正在寻找的线程控制类型并不完全可行。线程执行由操作系统及其调度程序排队。
- 我想使用CancellationToken之类的东西不是一个选项,因为每个线程都只是在做一个调用并等待答案
- 我刚刚在类中看到Thread=>Suspend&Restart已经过时/不推荐了
提前感谢。因此,由于线程的性质,您正在寻找的线程控制类型并不完全可行。线程执行由操作系统及其调度程序排队。这意味着您无法控制线程何时将积极运行。但是,光纤与线程类似,不同之处在于应用程序负责调度和切换线程。光纤在mono中被理想化为协同例程,win32库对其提供了一些支持。但是.net框架并没有提供太多的支持 社区中的一些人一直在询问有关纤维的问题,但他们的搜索大多没有结果。 这个答案可能会引导你们走向一个对你们的旅程有帮助的方向。它提到为并行任务库创建自己的调度器
我并没有深入探讨这个概念,因为我还没有对它的需求,但收益回报程序设计似乎是一个替代方案。
线程只是在做一个调用并等待答案。
这难道不意味着它在等待时不使用处理时间吗?那么为什么要挂起它呢?实际上,我运行了负责异步获取图像的前几个线程(取决于10、20个线程)。这些要求并不紧迫。有时我会执行另一项非常紧急的任务:不幸的是,这项任务很慢。我不能说这件事不紧急,另一件事紧急。我无法管理任务之间的调度。。。这就是我对暂停/重新启动非紧急任务感兴趣的原因。。。