12
|
StriplingWarrior · 技术社区 · 7 年前 |
![]() |
1
3
可能需要选择一个适合执行委托实例执行的操作的任务计划程序。 考虑以下示例:
你的
还可以使用自定义任务调度程序在库中实现自定义调度逻辑。例如,请参见 Scheduler 奥尔良框架网站页面。 有关详细信息,请检查:
|
![]() |
2
9
我得说一点,这让太多的程序员陷入麻烦。每一个旨在使线程看起来简单的编程辅助工具都会产生五个程序员没有机会调试的新问题。 后台工作人员是第一个,一个谦虚和明智的尝试,以隐藏并发症。但是没有人意识到工作线程在线程池上运行,所以不应该占用自己的I/O。每个人都会犯错,没有多少人注意到。而且忘记检查runworkercompleted事件中的e.error,在线程代码中隐藏异常是wrappers的一个普遍问题。 异步/等待模式是最新的,它使 真正地 别紧张。但是它的构图非常糟糕,异步海龟一直到main()为止。他们最终不得不在C版本7.2中解决这个问题,因为每个人都被困在上面了。但不能修复库中的DraseCuffulaWaWIT()问题。它完全倾向于图书馆的作者知道他们在做什么,值得注意的是,他们中的许多人为微软工作,并修补winrt。 任务类弥补了两者之间的差距,其设计目标是 非常 镇定。好计划,他们无法预测程序员将如何使用它。但同时也是一种责任,它鼓励程序员继续进行一场将任务粘合在一起的风暴。即使这样做没有意义,因为这些任务只是按顺序运行。值得注意的是,他们甚至添加了一个优化,以确保continuation在同一个线程上运行,从而避免上下文切换开销。很好的计划,但却造成了这个网站命名的不可调试的问题。 所以是的,你看到的建议很好。任务是有用的 异步性 是的。当服务进入“云”并且延迟成为一个你不能再忽视的细节时,你必须处理的一个常见问题。如果您继续使用()这种代码,那么您总是关心执行继续的特定线程。由taskscheduler提供,它不是fromcurrentsynchronizationcontext()提供的可能性很低。异步/等待就是这样发生的。 |
![]() |
3
3
如果当前任务是子任务,则使用
如果你使用
你唯一会用的理由
斯蒂芬·克利里的帖子 ContinueWith is Dangerous, Too 是的。 Stephen Toub对他的 MSDN blog 是的。 |
![]() |
4
2
我当然不认为我能提供防弹答案,但我会给我5美分。
想象一下,您正在开发一些web api,webserver自然地使其成为多线程的。因此,您需要破坏并行性,因为您不想使用Web服务器的所有资源,但同时您希望加快处理时间,因此您决定使用较低的并发级别来制作自定义任务计划程序,因为为什么不这样做。
现在您的api需要查询一些数据库并对结果进行排序,但是这些结果有数百万个,所以您决定通过合并排序(divide and conquer)来完成,然后您需要此算法的所有子任务都与您的自定义任务调度程序兼容。(
示例取自 here
|
![]() |
A B · C#Excel自动调整列避免长文本时出错 8 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 8 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 8 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 8 月前 |